Учитывая две точки A
и B
, найдите угол от линии AO
к линии BO
относительно точки, O
где O
находится начало координат ( (0,0)
). Кроме того, угол может быть положительным или отрицательным в зависимости от положения точек (см. Примеры). Ввод будет указывать точки A
и B
, и может быть дан в любой удобной форме. Вывод будет углом в градусах (но он будет положительным, если AO
его повернуть против часовой стрелки относительно начала координат, BO
и отрицательным, если его повернуть по часовой стрелке). Если угол составляет 180 градусов, вы можете вернуть отрицательный или положительный результат. Точно так же угол может быть положительным или отрицательным вариантом того же угла ( 90 deg
равен -270 deg
). Примеры:
Вход:
A(5,5) B(5,-5)
Выход:-90
(AO
повернут в-90
градусах, чтобы получитьBO
).Вход:
A(5,-5) B(5,5)
Выход:90
(AO
повернут в90
градусах, чтобы получитьBO
).
Это код-гольф , поэтому выигрывает самый короткий код в байтах!
источник
(0,0)
?AO
иBO
обычно называется угломAOB
.Ответы:
Pyth, 11 байт
демонстрация
Вход дан в формате:
Если желательно, чтобы A был первым, это можно изменить на 1 байт.
Объяснение:
источник
TI-BASIC, 13 байтов
Для калькуляторов серии TI-83 + / 84 +.
Чтобы использовать эту программу, введите список
{x1,x2}
через переменную Ans и{y1,y2}
в командной строке.источник
ΔList(
, являются один байт каждый. Это включает в себяR►Pθ(
.CJam, 14 байтов
Это полная программа, которая читает входные данные как
[[Ax Ay] [Bx By]]
из STDIN.Попробуйте онлайн в интерпретаторе CJam .
Как это устроено
источник
Минколанг 0,9 , 112 байт
Я действительно хочу реализовать функции триггеров как встроенные модули ... но это было весело! (Предостережение: это выводит положительную разность углов, а не разность углов со знаком. Учитывая мои ограничения, я думаю, что это оправдано.)
Попробуй это здесь.
объяснение
Я опубликую более полное объяснение, если кто-то захочет, но суть его такова:
источник
:D
Был ли это вызов Hello World, когда вы обратили внимание на комментарии в (FYI, интерпретатор, который я сделал для Simplex, работает в разных «режимах»: строковом режиме и режиме комментариев. Это действительно облегчает анализ и позволяет игнорировать сигнальные символы одного режим пока в другом.)Mathematica, 22 байта
Пример:
источник
{{0,1},{1,0}}
Javascript, 66 bytes
demo
источник
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.
источник
Python 2.7, 73 Bytes
Test:
источник
*
s all over the placeOctave, 43 bytes
Input/Output:
источник
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.источник
TeaScript, 28 bytes
I really should of implemented trig functions...
Try it online input is
a.x a.y b.x b.y
Explanation
источник
Ruby,
64, 58 bytesUsage
источник
JavaScript, 49 bytes
Input is taken in form:
[aY, aX], [bY, bX]
(notice the reversed x/y)источник
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):
источник
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.источник
45/atan(1)
instead of180/3.14159....
(in the online demo).