Найти области самопересекающийся многоугольник
-
- interested
- Сообщения: 3
- Зарегистрирован: 01 июл 2017, 16:56
- Версия LabVIEW: 2014
- Контактная информация:
Найти области самопересекающийся многоугольник
Я пытаюсь разбивать самопересекающийся многоугольник на области и назначать полярность свойства (положительную и отрицательную) для каждую область.
Эсть VI «Polygon area.vi», который вычисляет площадь многоугольника принимая во внимание самопересечения, но не выдает информацию об области самопересечения.
Любые предложения и идеи будут оценены.
Спасибо
Идея в том, чтобы найти, как дорожка на печатной плате принимает электромагнитные помехи. Каждая дорожка на печатной плате формирует замкнутый контур с проводником GND, а самопересекающиеся сегменты петли оказывают влияние на помехи. Многоугольник, образованный некоторой сигнальной дорожкой и GND показан в приложении.
Линии не всегда параллельны / перпендикулярны, поэтому мы не можем полагаться на это как правило, линии могут быть любого угла. Смотри набор строк, созданных с реальной печатной платы.
Результат будет - два массива многоугольников (Poly_A и Poly_B) для положительных и отрицательных областей.Эсть VI «Polygon area.vi», который вычисляет площадь многоугольника принимая во внимание самопересечения, но не выдает информацию об области самопересечения.
Любые предложения и идеи будут оценены.
Спасибо
-
- leader
- Сообщения: 526
- Зарегистрирован: 28 фев 2010, 18:04
- Версия LabVIEW: LV2018
- Благодарил (а): 10 раз
- Поблагодарили: 18 раз
- Контактная информация:
Re: Найти области самопересекающийся многоугольник
Для старта вот такая программка, определяет координаты точек пересечения. Думаю, что имея эти данные, области будет определить проще. Если нужны номера отрезков, которые формируют точку пересечения, думаю, и сам добавишь.
- Вложения
-
- Области+.vi
- (33.46 КБ) 179 скачиваний
-
- interested
- Сообщения: 3
- Зарегистрирован: 01 июл 2017, 16:56
- Версия LabVIEW: 2014
- Контактная информация:
Re: Найти области самопересекающийся многоугольник
К сожалению я использую версию 2014. Я буду очень благодарен, если вы сможете загрузить его в 2014. Спасибо!
-
- leader
- Сообщения: 526
- Зарегистрирован: 28 фев 2010, 18:04
- Версия LabVIEW: LV2018
- Благодарил (а): 10 раз
- Поблагодарили: 18 раз
- Контактная информация:
Re: Найти области самопересекающийся многоугольник
Вот, сохранено в LV2014.
- Вложения
-
- Области+.vi
- (19.07 КБ) 163 скачивания
-
- interested
- Сообщения: 3
- Зарегистрирован: 01 июл 2017, 16:56
- Версия LabVIEW: 2014
- Контактная информация:
Re: Найти области самопересекающийся многоугольник
Спасибо! Это именно то, что мне нужно для начала обработки - очень умное и элегантное решение!
-
- leader
- Сообщения: 526
- Зарегистрирован: 28 фев 2010, 18:04
- Версия LabVIEW: LV2018
- Благодарил (а): 10 раз
- Поблагодарили: 18 раз
- Контактная информация:
Re: Найти области самопересекающийся многоугольник
Ну, что ж, рад, что в масть. Решение не закончено, поскольку будут проблемы при вертикальных отрезках (деление на ноль). В этом случае надо вводить дополнительные действия. Вижу два варианта:
1. Искусственно одну из точек вертикального отрезка смещать по X на величину с одной стороны не влияющую на конечный результат, а с другой - достаточную для ухода от нуля.
2. Только для этого случая базовым параметром для вычисления точки пересечения брать не X, а Y. Для этого лучше создать подпрограммку нахождения точки пересечения двух отрезков и при необходимости менять местами X и Y.
1. Искусственно одну из точек вертикального отрезка смещать по X на величину с одной стороны не влияющую на конечный результат, а с другой - достаточную для ухода от нуля.
2. Только для этого случая базовым параметром для вычисления точки пересечения брать не X, а Y. Для этого лучше создать подпрограммку нахождения точки пересечения двух отрезков и при необходимости менять местами X и Y.
-
- leader
- Сообщения: 526
- Зарегистрирован: 28 фев 2010, 18:04
- Версия LabVIEW: LV2018
- Благодарил (а): 10 раз
- Поблагодарили: 18 раз
- Контактная информация:
Re: Найти области самопересекающийся многоугольник
Тут пришлось мне делать программку, в которой так же нужно было находить точки пересечения двух прямых на плоскости. Вспомнив эту тему решил обобщить это решение. Конечно, в первую очередь оно касалось проблемы вертикальных прямых. Во вложенном VI дано краткое описание решения.
- Вложения
-
- Области++.vi
- (245.51 КБ) 114 скачиваний
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Найти области самопересекающийся многоугольник
Если стоит VDM, то можно воспользоваться IMAQ Lines Intersection VI: http://zone.ni.com/reference/en-XX/help ... ersection/ . Там же на вкладке Analytics Geometry ещё много всякого интересного.
-
- leader
- Сообщения: 932
- Зарегистрирован: 17 янв 2016, 15:02
- Награды: 1
- Версия LabVIEW: 6.1,8.5,20
Re: Найти области самопересекающийся многоугольник
Задача довольно просто решается при помощи VI из библиотеки Geometry
- Вложения
-
- коммент 1
- Blackman--Polygon Vertices Intersections BD.png (74.64 КБ) 7428 просмотров
-
- коммент 2
- Blackman--Polygon Vertices Intersections FP.PNG (33.59 КБ) 7428 просмотров
-
- leader
- Сообщения: 526
- Зарегистрирован: 28 фев 2010, 18:04
- Версия LabVIEW: LV2018
- Благодарил (а): 10 раз
- Поблагодарили: 18 раз
- Контактная информация:
Re: Найти области самопересекающийся многоугольник
Что то у меня (LV 2015) в библиотеке геометрия нет vi Line Intersection. С чем это может быть связано?
-
taras_33
- professional
- Сообщения: 392
- Зарегистрирован: 31 окт 2009, 18:25
- Награды: 1
- Версия LabVIEW: 2019
- Поблагодарили: 13 раз
- Контактная информация:
Re: Найти области самопересекающийся многоугольник
Один к одному, без привязки к библиотеке Geometry
- Вложения
-
LV_2013.zip
- (30.41 КБ) 111 скачиваний
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!
So far, the Universe is winning!
-
- leader
- Сообщения: 932
- Зарегистрирован: 17 янв 2016, 15:02
- Награды: 1
- Версия LabVIEW: 6.1,8.5,20
Re: Найти области самопересекающийся многоугольник
Нет в меню, в библиотеке есть. Это subVI. Через иерархию.
Добавил возможность выбора типа полигона.
Добавил возможность выбора типа полигона.
- Вложения
-
- Blackman--Polygon Vertices Intersection 2016 BD.png (80.38 КБ) 7384 просмотра
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 3 Ответы
- 629 Просмотры
-
Последнее сообщение Artem.spb