У меня есть система вершин с линиями, соединяющими их. Я измеряю угол в каждой вершине, сравнивая себя, и это «следующая» точка (вершины представляют собой двусвязный список).Рисунок x, y точки после угла выдержки?
var next = this.get("next"),
dX = next.get("x") - this.get("x"),
dY = next.get("y") - this.get("y"),
radians = Math.atan2(dY, dX);
Когда этот угол между ними попадает некоторый порог, как +/- 2 градусов от 45 градусов ... так как 47 градусов, и мы хотим назвать это 45 ... Мне нужно, чтобы переместить эту точку x, y, который будет продиктован, если бы он составлял 45 градусов. Это то же самое относится к 135, 90, 180 и т. Д.
Я могу определить угол и легко ли мы находимся в зоне привязки к 45, и я знаю, какой угол мы должны установить. То, что я не знаю, как найти, - это x, y, учитывая новый угол.
if(CLOSE_ENOUGH_TO_SNAP) {
newAngle = Math.round(angle/45) * 45;
this.set({
x: something,
y: something
});
}
Так на рисунке ниже, этот угол должен привязываться к 90, и поэтому я должен быть в состоянии вычислить новый х, у, учитывая, что это 90, а не 92.
, где есть образ? – Guanxi
Должен быть там сейчас - извините, забыл приложить. – oooyaya
может помочь указать, что если этот угол был C на треугольнике, я знаю точки A и B и длину ноги AB, но я не знаю, как долго будут AC и BC. – oooyaya