Étant donné deux points A
et B
, trouvez l'angle d'une ligne AO
à l'autre BO
autour du point O
où se O
trouve l'origine ( (0,0)
). De plus, l'angle peut être positif ou négatif selon la position des points (voir exemples). L'entrée sera des points A
et B
, et peut être donnée sous n'importe quelle forme pratique. La sortie sera l'angle en degrés (mais elle est positive si elle AO
est tournée dans le sens antihoraire autour de l'origine pour obtenir BO
et négative si elle est tournée dans le sens horaire). Si l'angle est de 180 degrés, vous pouvez renvoyer une sortie négative ou positive. De même, l'angle peut être la version positive ou négative du même angle ( 90 deg
est égal à -270 deg
). Exemples:
Entrée:
A(5,5) B(5,-5)
Sortie:-90
(AO
est tourné-90
degrés pour obtenirBO
).Entrée:
A(5,-5) B(5,5)
Sortie:90
(AO
est tourné90
degrés pour obtenirBO
).
C'est le code-golf , donc le code le plus court en octets gagne!
la source
(0,0)
?AO
etBO
serait généralement appelé angleAOB
.Réponses:
Pyth, 11 octets
Manifestation
L'entrée est donnée au format:
Si l'on souhaite que A vienne en premier, cela peut être modifié pour 1 octet.
Explication:
la source
TI-BASIC, 13 octets
Pour les calculatrices de la série TI-83 + / 84 +.
Pour utiliser ce programme, entrez la liste
{x1,x2}
via la variable Ans et{y1,y2}
à l'invite.la source
ΔList(
, sont un octet chacune. Cela comprendR►Pθ(
.CJam, 14 octets
Il s'agit d'un programme complet qui lit l'entrée à
[[Ax Ay] [Bx By]]
partir de STDIN.Essayez-le en ligne dans l' interpréteur CJam .
Comment ça fonctionne
la source
Minkolang 0.9 , 112 octets
I really want to implement trig functions as built-ins now...but this was fun! (Caveat: this outputs the positive angle difference, not the signed angle difference. Given my limitations, I think that's justified.)
Try it here.
Explanation
Je posterai une explication plus complète si quelqu'un le veut, mais l'essentiel est:
la source
:D
Was it the Hello World challenge that you noticed the comments in (FYI the interpreter I have made for Simplex runs in different "modes": string mode and comment mode. It makes it really easy to parse and allows you to ignore signal characters of one mode whilst in the other.)Mathematica, 22 bytes
Example:
la source
{{0,1},{1,0}}
Javascript, 66 bytes
demo
la source
let f=
, and it's still considered valid as an anonymous function.Julia,
1825 bytesThis assumes that "any convenient form" already allows for
A
andB
to be given as complex numbers. Then, the complex number arithmetic does all the heavy lifting.Edit: converted snippet to function. 18 byte version only works in the Julia REPL.
la source
Python 2.7, 73 Bytes
Test:
la source
*
s all over the placeOctave, 43 bytes
Input/Output:
la source
CJam, 15 bytes
Thought I'll get in the CJam game as well. Try it online. Input is in form of
bx by ax ay
. Unfortunately, this is the shortest method of doing this challenge without copying Dennis' answer.la source
TeaScript, 28 bytes
I really should of implemented trig functions...
Try it online input is
a.x a.y b.x b.y
Explanation
la source
Ruby,
64, 58 bytesUsage
la source
JavaScript, 49 bytes
Input is taken in form:
[aY, aX], [bY, bX]
(notice the reversed x/y)la source
Simplex v.0.7, 13 bytes
I'm glad I added
mathrelations
:D Unfortunately, I cannot take pointwise input. So, I input each point as a separate number (Ax, Ay, Bx, By). (I used this as a resource.)I can save a char if I can take input as (Ay, Ax, By, Bx):
la source
C, 88 bytes
Requires compiling with GCC to take advantage of
M_PI
being defined inmath.h
as a part of GCC's built-in math constants. Try it online - since ideone doesn't use GCC (apparently), an additional few bytes are needed for enough digits of π to be accurate.la source
45/atan(1)
instead of180/3.14159....
(in the online demo).