Диаграмма: http://i.stack.imgur.com/gpL0P.pngнайти точку, где линия пересекает нелинейный тракт
Резюме: Как найти координаты синей точки на диаграмме, так что я могу рассчитать положение красных точек, прилегающее к нему и рисовать мой треугольник?
Сведения о проблеме: Я пытаюсь сделать хвост на воздушном шаре с подсказкой с помощью перетаскивания для приложения карты, которое я делаю. Я хотел бы, чтобы хвост был выведен из того места, где расположен шар (точка 0,0 спрайта, содержащего как воздушный шар, так и хвост) к краю баллона, причем основание хвоста всегда является одинаковой произвольной шириной ширина соединяется с воздушным шаром. Хвост будет перерисовываться в новых координатах каждого кадра.
Я бы предпочел не скрывать часть хвоста под баллоном, поскольку я намерен использовать на нем некоторую прозрачность.
Если бы путь был окружностью или эллипсом, я мог бы использовать метод angleToProgress (наряду с некоторым триггером) класса CirclePath2D для библиотеки путей движения гринкока. Я мог бы разместить скрытый указатель пути и получить его xy ... Однако я я использую roundedRectangle ... Поэтому я думал, что лучшим методом будет какое-то обнаружение столкновения между линией и везде, где оно пересекает путь, нарисованный вокруг периметра воздушного шара. Однако я не могу найти никаких функций столкновения, которые возвращают xy столкновения.
Так что я в тупике. Я думаю, что то, что я хочу сделать, может быть легко выполнимо в AS3, используя встроенные методы столкновений. Есть ли библиотека столкновений, которая позволит мне сделать это, или, может быть, желательно, какую-то математику, которая ускользает от меня? Потому что это похоже на то, что я над этим думаю, и это не должно быть так сложно.
[Примечание:. Я не могу вставить диаграмму, потому что не хватает репутации]
Почему бы просто не нарисовать треугольник в полной точке, а затем нарисовать округленный прямоугольник теми же размерами, что и в качестве маски для треугольника? –
Я на самом деле уже делаю это, без маски. Я подумал о том, чтобы маскировать его, но хотел избежать этого, так как я не могу поколебать чувство, что здесь есть чему поучиться. – Xerain
Существует много триггеров, если вы идете по математическому маршруту. Есть два элемента, чтобы посмотреть на прямоугольник и круг в углу. Зная высоту и ширину прямоугольника и радиус угла, вы сможете рассчитать все необходимые точки. Но вы также столкнетесь с проблемой округления, чтобы она никогда не была идеальной для пикселя. Иногда у вас будет либо перекрытие, либо разрыв в 1 пиксель. –