Вот чего я хочу достичь.Как вы можете сделать кратчайшую линию, касающуюся двух кругов в любом заданном пространстве?
Параметры оба радиуса окружности, х - центры, а у - центры. Функция создания строки - line(x1, y1, x2, y2)
.
Вот что я теперь использую JavaScript.
var lineX1 = circleX1 + (circleRadius1 * Math.sin(Math.atan2(circleY2 - circleY1, circleX2 - circleX1)));
var lineY1 = circleY1 + (circleRadius1 * Math.cos(Math.atan2(circleY2 - circleY1, circleX2 - circleX1)));
var lineX2 = circleX2 - (circleRadius2 * Math.sin(Math.atan2(circleY1 - circleY2, circleX1 - circleX2)));
var lineY2 = circleY2 - (circleRadius2 * Math.cos(Math.atan2(circleY1 - circleY2, circleX1 - circleX2)));
line(lineX1, lineY1, lineX2, lineY2);
Но это выглядит так.
Вы звоните 'Math.atan()' (то есть, один-параметр метода), но собираясь вызвать 'Math.atan2()' (т.е. два-параметра метода)? – Welbog
Это была опечатка, я тоже использовал 'Math.atan2()'. Сожалею! – notalentgeek