Dados dois pontos A
e B
, encontre o ângulo de linha AO
a linha BO
sobre o ponto O
onde O
está a origem ( (0,0)
). Além disso, o ângulo pode ser positivo ou negativo, dependendo das posições dos pontos (veja exemplos). A entrada será pontos A
e B
, e pode ser dada de qualquer forma conveniente. A saída será o ângulo em graus (mas é positivo se AO
for girado no sentido anti-horário sobre a origem a ser BO
obtida e negativo se for girado no sentido horário). Se o ângulo for 180 graus, você poderá retornar uma saída negativa ou positiva. Da mesma forma, o ângulo pode ser a versão positiva ou negativa do mesmo ângulo ( 90 deg
é igual a -270 deg
). Exemplos:
Entrada:
A(5,5) B(5,-5)
Saída:-90
(AO
é girado-90
graus para obterBO
).Entrada:
A(5,-5) B(5,5)
Saída:90
(AO
é girado90
graus para obterBO
).
Isso é código-golfe , então o código mais curto em bytes vence!
fonte
(0,0)
?AO
eBO
normalmente seria chamado de ânguloAOB
.Respostas:
Pitão, 11 bytes
Demonstração
A entrada é fornecida no formato:
Se desejar que A seja o primeiro, isso pode ser alterado para 1 byte.
Explicação:
fonte
TI-BASIC, 13 bytes
Para calculadoras da série TI-83 + / 84 +.
Para usar este programa, digite a lista
{x1,x2}
através da variável Ans e{y1,y2}
no prompt.fonte
ΔList(
, são um byte cada. Isso incluiR►Pθ(
.CJam, 14 bytes
Este é um programa completo que lê a entrada como
[[Ax Ay] [Bx By]]
de STDIN.Experimente on-line no intérprete CJam .
Como funciona
fonte
Minkolang 0.9 , 112 bytes
Eu realmente quero implementar funções trigonométricas como built-ins agora ... mas isso foi divertido! (Advertência: isso gera a diferença de ângulo positivo, não a diferença de ângulo assinado. Dadas as minhas limitações, acho que isso se justifica.)
Experimente aqui.
Explicação
Vou postar uma explicação mais completa, se alguém quiser, mas a essência é:
fonte
:D
Foi o desafio do Hello World em que você notou os comentários (o FYI, o intérprete que eu fiz para o Simplex, é executado em diferentes "modos": modo de seqüência de caracteres e modo de comentário. Facilita a análise e permite ignorar os caracteres de sinal de um enquanto estiver no outro.)Mathematica, 22 bytes
Exemplo:
fonte
{{0,1},{1,0}}
Javascript, 66 bytes
demonstração
fonte
let f=
e ainda é considerado válido como uma função anônima.Julia,
1825 bytesIsso pressupõe que "qualquer forma conveniente" já permita
A
eB
seja dada como números complexos. Então, a aritmética de números complexos faz todo o trabalho pesado.Editar: snippet convertido para funcionar. A versão de 18 bytes funciona apenas no Julia REPL.
fonte
Python 2.7, 73 bytes
Teste:
fonte
*
s em todo o lugarOitava, 43 bytes
Entrada / Saída:
fonte
CJam, 15 bytes
Pensei que também entrarei no jogo CJam. Experimente online . A entrada está no formato de
bx by ax ay
. Infelizmente, esse é o método mais curto para fazer esse desafio sem copiar a resposta de Dennis.fonte
TeaScript, 28 bytes
Eu realmente deveria de funções trigonométricas implementadas ...
Experimente a entrada on-line é
a.x a.y b.x b.y
Explicação
fonte
Ruby,
64, 58 bytesUso
fonte
JavaScript, 49 bytes
A entrada é obtida no formato:
[aY, aX], [bY, bX]
(observe o x / y invertido)fonte
Simplex v.0.7 , 13 bytes
Fico feliz por ter acrescentado
mathrelations
: D Infelizmente, não posso aceitar entradas pontuais. Então, insiro cada ponto como um número separado (Ax, Ay, Bx, By). (Eu usei isso como um recurso.)Posso salvar um caractere se eu puder receber informações como (Ay, Ax, By, Bx):
fonte
C, 88 bytes
Requer a compilação com o GCC para aproveitar a vantagem de
M_PI
ser definidomath.h
como parte das constantes matemáticas internas do GCC . Experimente online - como o ideone não usa o GCC (aparentemente), são necessários alguns bytes adicionais para que dígitos suficientes de π sejam precisos.fonte
45/atan(1)
vez de180/3.14159....
(na demonstração online).