Проще говоря, у меня есть:Finding Отрезок-Прямоугольник точка пересечения
- Области просмотр прямоугольник, где (0,0) является нижним левым углом (1,1) находится в верхнем правом и (0,5,0,5) является центром экрана.
- Точка (a, b), которая находится за пределами прямоугольника.
Это в координатах виджетов, поэтому + X справа, + Y на экране.
И мне нужна функция, которая берет эти параметры и возвращает точку на краю прямоугольника, где линия (между центром прямоугольника (0,5,0,5) и точкой (a, b)) пересекает его.
Я знаю, как это сделать на бумаге с заданными координатами, но я просто не могу понять, когда дело доходит до кода. Кроме того, я понимаю, что такие вопросы были рассмотрены в разных потоках, но я не могу найти простой вход для функции вывода в любом месте.
Я делаю это в движке Unity3D, поэтому желательно в Javascript, но любой язык или псевдокод будет большой помощью, поскольку я, вероятно, могу его преобразовать.
EDIT Чтобы уточнить, я ищу что-то вроде:
function IntersectFromViewportCenter(x : float, y : float) {
...
return Point(x1, y1);
}
Где (х, у) точки вне окружности и (x1, y1) является точкой пересечения.
Благодаря
Спасибо, что, кажется, работает для меня. Я должен был добавить быстрое исправление, чтобы заставить его работать для нижней и левой сторон экрана, но это, вероятно, из-за того, что преобразование, которое я делаю из 3D-пространства мира, предварительно меняет координаты. – jt78
Умножение/добавление для точки на краю не нужно. – Jessy