Author |
Topic |
|
mormax
Russia
18 Posts |
Posted - 07/07/2004 : 07:08:47
|
Как отловить пересечение шейпов? Скажем, имеется шейп под названием "кабель", нужно узнать сколько он пересекает шейпов под названием "провод". |
|
immortal77
30 Posts |
Posted - 07/09/2004 : 05:34:26
|
по координатам концов, не помню формулу, поройся в высшей математике, там точно есть формула для вычисления точки пересечения двух отрезков. если ненадо вычислять координаты точки пересечения то можно подругому, но функция получиться больше, рекомендую прочитать геометрию |
|
|
mormax
Russia
18 Posts |
Posted - 07/23/2004 : 08:38:55
|
так, если бы мне нужна была точка, то без проблем - я бы так и сделал. Но дело в том что мне надо узнать какие на листе шейпы пересекаються, а по точкам проверять этож сколько времени макрос выполняться будет... может кто-нибудь другой способ подскажет? например с помощью hittest, или еще есть метод BoundingBox, только я не понял как он работает... |
|
|
immortal
Russia
391 Posts |
Posted - 07/23/2004 : 11:37:01
|
у меня программа расставляет спуски проводов, цикл 10000, выполняется 5-15 секунд (P4-1500 256mb), quote: так, если бы мне нужна была точка, то без проблем - я бы так и сделал. Но дело в том что мне надо узнать какие на листе шейпы пересекаються
хм, а че если точка пересечения есть, они могут не пересекаться?, для нахождения точки (точек)пересечения двух линий надо решить систему уравнений: A1 * x + B1 * y + C1 = 0 A2 * x + B2 * y + C2 = 0
где оба уравнения, уравнения линий, причем надо учесть что при равенстве отношений А1 / А2 и В1 / В2 система не имеет решений (прямые паралельны), для нахождения уравнения прямой, проходящей через 2 точки А1(x1,y1) и A2(x2,y2) получаем (x - x1)/(x2 - x1) = (y - y1)/(y2 - y1), после нахождения точки пересечения прямых, вам надо определить принадлежит ли эта точка обеим отрезкам.
|
Edited by - immortal on 07/23/2004 12:16:51 |
|
|
|
Topic |
|
|
|