2013-04-14 4 views
2

Предположим, что у меня есть окружность с центром в точке начала координат (0,0) и точкой 90 градусов от нее (0,10) ... из этого 2 очевидно, что радиус круга определенно будет 10, правильно?Javascript: вычислите радиус окружности заданной центральной точки и другую точку

Я исследовал, что формула нахождения радиуса, основанный на центральной точке, а другой точки:

Math.sqrt(((x1-x2)*2) + ((y1-y2)*2)) 

, но я получаю значение 4.47213595499958 вместо того, что я думал, будет 10.

Может ли кто-нибудь научить меня правильной формуле, которую я должен использовать, чтобы сделать идеальный круг от центральной точки до другой точки?

+0

Не 90deg '(10,0)'? Я подумал, что 0дег указывает. –

+1

Вообще говоря, с декартовыми системами общая интерпретация нулевых степеней направлена ​​вправо – slebetman

+0

@slebetman Да, я, вероятно, слишком сонливый .. с градиентами css3, которые только что изменили префикс 0deg-производителя, указывающий на правую сторону до стандартного 0deg указывая вверх Я, вероятно, смешиваю это с базовой картезианской плоскостью. –

ответ

5

питания в JavaScript осуществляется с помощью Math.pow:

Math.sqrt(Math.pow((x1-x2), 2) + Math.pow((y1-y2), 2)) 
+0

wow. я бы определенно использовал эту формулу ... спасибо за помощь! –

5

В javascript оператор * означает умножение, а не повышение мощности. Правильная формула должна быть:

Math.sqrt(((x1-x2)*(x1-x2)) + ((y1-y2)*(y1-y2))) 
+0

Вы также можете использовать оператор '^' (что означает «поднять до мощности»): 'Math.sqrt (((x1-x2)^2) + ((y1-y2)^2))' – pete

+3

@ Пете Нет, это, безусловно, нет. Это двоичный оператор XOR. – Xymostech

+0

@pete Нет,^означает XOR –

Смежные вопросы