![]() |
точка пересечения отрезков
Пересекаются простые фигуры, точки пересечения находятся математически, однако это ведь формулы пересечения векторов и соответственно если отрезки не паралельны, то они все равно пересекаются. Как определяется принадлежность точки к отрезку, замучался совсем?
Простой пример: Код:
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
Вот, смотри в аттаче - все работает.
|
| Часовой пояс GMT +4, время: 10:47. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.