Найти области самопересекающийся многоугольник

Простейшие вопросы в области инженерной разработки
Ответить
student1
interested
interested
Сообщения: 3
Зарегистрирован: 01 июл 2017, 16:56
Версия LabVIEW: 2014
Контактная информация:

Найти области самопересекающийся многоугольник

Сообщение student1 »

Я пытаюсь разбивать самопересекающийся многоугольник на области и назначать полярность свойства (положительную и отрицательную) для каждую область.
Многоугольник
Многоугольник
Идея в том, чтобы найти, как дорожка на печатной плате принимает электромагнитные помехи. Каждая дорожка на печатной плате формирует замкнутый контур с проводником GND, а самопересекающиеся сегменты петли оказывают влияние на помехи. Многоугольник, образованный некоторой сигнальной дорожкой и GND показан в приложении.
ss2.png
Линии не всегда параллельны / перпендикулярны, поэтому мы не можем полагаться на это как правило, линии могут быть любого угла. Смотри набор строк, созданных с реальной печатной платы.
ss3.png
Результат будет - два массива многоугольников (Poly_A и Poly_B) для положительных и отрицательных областей.

Эсть VI «Polygon area.vi», который вычисляет площадь многоугольника принимая во внимание самопересечения, но не выдает информацию об области самопересечения.

Любые предложения и идеи будут оценены.
Спасибо
Юрий
leader
leader
Сообщения: 526
Зарегистрирован: 28 фев 2010, 18:04
Версия LabVIEW: LV2018
Благодарил (а): 10 раз
Поблагодарили: 18 раз
Контактная информация:

Re: Найти области самопересекающийся многоугольник

Сообщение Юрий »

Для старта вот такая программка, определяет координаты точек пересечения. Думаю, что имея эти данные, области будет определить проще. Если нужны номера отрезков, которые формируют точку пересечения, думаю, и сам добавишь.
Вложения
Области+.vi
(33.46 КБ) 171 скачивание
student1
interested
interested
Сообщения: 3
Зарегистрирован: 01 июл 2017, 16:56
Версия LabVIEW: 2014
Контактная информация:

Re: Найти области самопересекающийся многоугольник

Сообщение student1 »

К сожалению я использую версию 2014. Я буду очень благодарен, если вы сможете загрузить его в 2014. Спасибо!
Юрий
leader
leader
Сообщения: 526
Зарегистрирован: 28 фев 2010, 18:04
Версия LabVIEW: LV2018
Благодарил (а): 10 раз
Поблагодарили: 18 раз
Контактная информация:

Re: Найти области самопересекающийся многоугольник

Сообщение Юрий »

Вот, сохранено в LV2014.
Вложения
Области+.vi
(19.07 КБ) 152 скачивания
student1
interested
interested
Сообщения: 3
Зарегистрирован: 01 июл 2017, 16:56
Версия LabVIEW: 2014
Контактная информация:

Re: Найти области самопересекающийся многоугольник

Сообщение student1 »

Спасибо! Это именно то, что мне нужно для начала обработки - очень умное и элегантное решение!
Юрий
leader
leader
Сообщения: 526
Зарегистрирован: 28 фев 2010, 18:04
Версия LabVIEW: LV2018
Благодарил (а): 10 раз
Поблагодарили: 18 раз
Контактная информация:

Re: Найти области самопересекающийся многоугольник

Сообщение Юрий »

Ну, что ж, рад, что в масть. Решение не закончено, поскольку будут проблемы при вертикальных отрезках (деление на ноль). В этом случае надо вводить дополнительные действия. Вижу два варианта:
1. Искусственно одну из точек вертикального отрезка смещать по X на величину с одной стороны не влияющую на конечный результат, а с другой - достаточную для ухода от нуля.
2. Только для этого случая базовым параметром для вычисления точки пересечения брать не X, а Y. Для этого лучше создать подпрограммку нахождения точки пересечения двух отрезков и при необходимости менять местами X и Y.
Юрий
leader
leader
Сообщения: 526
Зарегистрирован: 28 фев 2010, 18:04
Версия LabVIEW: LV2018
Благодарил (а): 10 раз
Поблагодарили: 18 раз
Контактная информация:

Re: Найти области самопересекающийся многоугольник

Сообщение Юрий »

Тут пришлось мне делать программку, в которой так же нужно было находить точки пересечения двух прямых на плоскости. Вспомнив эту тему решил обобщить это решение. Конечно, в первую очередь оно касалось проблемы вертикальных прямых. Во вложенном VI дано краткое описание решения.
Вложения
Области++.vi
(245.51 КБ) 105 скачиваний
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Найти области самопересекающийся многоугольник

Сообщение dadreamer »

Если стоит VDM, то можно воспользоваться IMAQ Lines Intersection VI: http://zone.ni.com/reference/en-XX/help ... ersection/ . Там же на вкладке Analytics Geometry ещё много всякого интересного.
Blackman

Activity
leader
leader
Сообщения: 932
Зарегистрирован: 17 янв 2016, 15:02
Награды: 1
Версия LabVIEW: 6.1,8.5,20

Re: Найти области самопересекающийся многоугольник

Сообщение Blackman »

Задача довольно просто решается при помощи VI из библиотеки Geometry
Вложения
коммент 1
коммент 1
Blackman--Polygon Vertices Intersections BD.png (74.64 КБ) 6707 просмотров
коммент 2
коммент 2
Blackman--Polygon Vertices Intersections FP.PNG (33.59 КБ) 6707 просмотров
Юрий
leader
leader
Сообщения: 526
Зарегистрирован: 28 фев 2010, 18:04
Версия LabVIEW: LV2018
Благодарил (а): 10 раз
Поблагодарили: 18 раз
Контактная информация:

Re: Найти области самопересекающийся многоугольник

Сообщение Юрий »

Что то у меня (LV 2015) в библиотеке геометрия нет vi Line Intersection. С чем это может быть связано?
Аватара пользователя
taras_33

Activity
professional
professional
Сообщения: 391
Зарегистрирован: 31 окт 2009, 18:25
Награды: 1
Версия LabVIEW: 2019
Поблагодарили: 13 раз
Контактная информация:

Re: Найти области самопересекающийся многоугольник

Сообщение taras_33 »

Один к одному, без привязки к библиотеке Geometry
Вложения
LV_2013.zip
(30.41 КБ) 100 скачиваний
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning!
Blackman

Activity
leader
leader
Сообщения: 932
Зарегистрирован: 17 янв 2016, 15:02
Награды: 1
Версия LabVIEW: 6.1,8.5,20

Re: Найти области самопересекающийся многоугольник

Сообщение Blackman »

Нет в меню, в библиотеке есть. Это subVI. Через иерархию.
Добавил возможность выбора типа полигона.
Вложения
Blackman--Polygon Vertices Intersection 2016 BD.png
Blackman--Polygon Vertices Intersection 2016 BD.png (80.38 КБ) 6663 просмотра
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Для чайников»