![]() |
точка пересечения отрезков
Пересекаются простые фигуры, точки пересечения находятся математически, однако это ведь формулы пересечения векторов и соответственно если отрезки не паралельны, то они все равно пересекаются. Как определяется принадлежность точки к отрезку, замучался совсем?
Простой пример: Код:
var arr=[100, 100, 200, 200, 200, 100, 100, 200]; |
проверь если допустим Х точки пересечения не больше максимума из Х-ов и не менее минимума отрезков и У
|
//Функция, которая проверяет пересечение двух линий>>>>---------------------------
Код:
function Peresechenie(x11,y11,x12,y12,x21,y21,x22,y22 : Number) : Number { |
немножко больше букв надо для строгого синтаксиса:
Код:
function Peresechenie(x11:Number, y11:Number, x12:Number, y12:Number, x21:Number, y21:Number, x22:Number, y22:Number) : Number {...} |
Спасибо, буду мудрить
|
вот, нашел:
Код:
// уравнение прямой |
вроде так работает:
Код:
var XS = ( x1 >= x0 ) === ( x0 >= x2 ); |
Цитата:
Сделал для наглядности пример, а то проект у меня очень большой, я проверял почти также и как у тебя, не во всех случаях работает Код:
var tochka:MovieClip = _root.createEmptyMovieClip("tochka", _root.getNextHighestDepth()); |
В том-то и дело. в 6-м посте все работает, именно по такому принципу.
В 7-м принцип такой: если точка попала на отрезок, то либо оба true либо оба false, после сравнения получается true. кстати toch1Xmin может быть и равен toch1Xmax, это учтено. Тут лучше юзать flash.geom.Point, кстати. Уравнения прямых я брал из справочника по математике, точка пересечения нашлась вычислением матрицы. |
Вложений: 1
Вот, смотри в аттаче - все работает.
|
Вот я и удивляюсь, если использовать данный код в первом посте (для двух отрезков) то все работает, а для фигур глючит.
|
Наверное клип в клипе и поворот до кучи. Волшебное слово localToGlobal ты знаешь. duplicateMovieClip не есть хорошо, attachMovie куда лучше. Попробуй все упростить.
|
duplicateMovieClip я использовал для наглядности, а повот до кучи у меня в проекте есть, запарился совсем, никак не могу понять. Расчеты ведь правильные, если убрать проверку на принадлежность к отрезку, клипы аттачатся правильно, траблы с проверкой. Кстати если нарисовать в примере квадраты, то вообще фигня...
|
Нашел проблему в моем примере ошибка вместо
Код:
var toch2Ymax = myPoint1.y+par2.point["y"+j2];P.S. Убил зря два дня |
| Часовой пояс GMT +4, время: 21:11. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.