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

Простейшие вопросы в области инженерной разработки

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

Postby student1 on 01 Jul 2017, 17:27

Я пытаюсь разбивать самопересекающийся многоугольник на области и назначать полярность свойства (положительную и отрицательную) для каждую область.
ss1.png
Многоугольник

Идея в том, чтобы найти, как дорожка на печатной плате принимает электромагнитные помехи. Каждая дорожка на печатной плате формирует замкнутый контур с проводником GND, а самопересекающиеся сегменты петли оказывают влияние на помехи. Многоугольник, образованный некоторой сигнальной дорожкой и GND показан в приложении.
ss2.png


Линии не всегда параллельны / перпендикулярны, поэтому мы не можем полагаться на это как правило, линии могут быть любого угла. Смотри набор строк, созданных с реальной печатной платы.
ss3.png


Результат будет - два массива многоугольников (Poly_A и Poly_B) для положительных и отрицательных областей.

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

Любые предложения и идеи будут оценены.
Спасибо
student1
interested
interested
 
Posts: 3
Joined: 01 Jul 2017, 16:56
LabVIEW Version: 2014
Karma: 0

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

Postby Юрий on 02 Jul 2017, 01:04

Для старта вот такая программка, определяет координаты точек пересечения. Думаю, что имея эти данные, области будет определить проще. Если нужны номера отрезков, которые формируют точку пересечения, думаю, и сам добавишь.
Attachments
Области+.vi
(33.46 KiB) Downloaded 66 times
Юрий
developer
developer
 
Posts: 283
Joined: 28 Feb 2010, 18:04
LabVIEW Version: LV2015
Karma: 52

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

Postby student1 on 02 Jul 2017, 20:36

К сожалению я использую версию 2014. Я буду очень благодарен, если вы сможете загрузить его в 2014. Спасибо!
student1
interested
interested
 
Posts: 3
Joined: 01 Jul 2017, 16:56
LabVIEW Version: 2014
Karma: 0

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

Postby Юрий on 02 Jul 2017, 23:48

Вот, сохранено в LV2014.
Attachments
Области+.vi
(19.07 KiB) Downloaded 69 times
Юрий
developer
developer
 
Posts: 283
Joined: 28 Feb 2010, 18:04
LabVIEW Version: LV2015
Karma: 52

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

Postby student1 on 03 Jul 2017, 00:04

Спасибо! Это именно то, что мне нужно для начала обработки - очень умное и элегантное решение!
student1
interested
interested
 
Posts: 3
Joined: 01 Jul 2017, 16:56
LabVIEW Version: 2014
Karma: 0

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

Postby Юрий on 03 Jul 2017, 00:34

Ну, что ж, рад, что в масть. Решение не закончено, поскольку будут проблемы при вертикальных отрезках (деление на ноль). В этом случае надо вводить дополнительные действия. Вижу два варианта:
1. Искусственно одну из точек вертикального отрезка смещать по X на величину с одной стороны не влияющую на конечный результат, а с другой - достаточную для ухода от нуля.
2. Только для этого случая базовым параметром для вычисления точки пересечения брать не X, а Y. Для этого лучше создать подпрограммку нахождения точки пересечения двух отрезков и при необходимости менять местами X и Y.
Юрий
developer
developer
 
Posts: 283
Joined: 28 Feb 2010, 18:04
LabVIEW Version: LV2015
Karma: 52

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

Postby Юрий on 08 Jan 2018, 18:54

Тут пришлось мне делать программку, в которой так же нужно было находить точки пересечения двух прямых на плоскости. Вспомнив эту тему решил обобщить это решение. Конечно, в первую очередь оно касалось проблемы вертикальных прямых. Во вложенном VI дано краткое описание решения.
Attachments
Области++.vi
(245.51 KiB) Downloaded 41 times
Юрий
developer
developer
 
Posts: 283
Joined: 28 Feb 2010, 18:04
LabVIEW Version: LV2015
Karma: 52

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

Postby dadreamer on 08 Jan 2018, 19:13

Если стоит VDM, то можно воспользоваться IMAQ Lines Intersection VI: http://zone.ni.com/reference/en-XX/help ... ersection/ . Там же на вкладке Analytics Geometry ещё много всякого интересного.
User avatar
dadreamer
professor
professor
 
Posts: 3038
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 748
I/O VIP vision internet

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

Postby Blackman on 09 Jan 2018, 19:15

Задача довольно просто решается при помощи VI из библиотеки Geometry
Attachments
Blackman--Polygon Vertices Intersections BD.png
коммент 1
Blackman--Polygon Vertices Intersections BD.png (74.64 KiB) Viewed 2208 times
Blackman--Polygon Vertices Intersections FP.PNG
коммент 2
Blackman--Polygon Vertices Intersections FP.PNG (33.59 KiB) Viewed 2208 times
Blackman
leader
leader
 
Posts: 712
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 185

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

Postby Юрий on 09 Jan 2018, 23:37

Что то у меня (LV 2015) в библиотеке геометрия нет vi Line Intersection. С чем это может быть связано?
Юрий
developer
developer
 
Posts: 283
Joined: 28 Feb 2010, 18:04
LabVIEW Version: LV2015
Karma: 52

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

Postby taras_33 on 10 Jan 2018, 05:32

Один к одному, без привязки к библиотеке Geometry
Attachments
LV_2013.zip
(30.41 KiB) Downloaded 37 times
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!
User avatar
taras_33
advanced
advanced
 
Posts: 179
Joined: 31 Oct 2009, 18:25
Location: Minsk -> Miami
Medals: 1
Activity (1)
LabVIEW Version: 2016
Karma: 92
CLD

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

Postby Blackman on 10 Jan 2018, 11:05

Нет в меню, в библиотеке есть. Это subVI. Через иерархию.
Добавил возможность выбора типа полигона.
Attachments
Blackman--Polygon Vertices Intersection 2016 BD.png
Blackman--Polygon Vertices Intersection 2016 BD.png (80.38 KiB) Viewed 2164 times
Blackman
leader
leader
 
Posts: 712
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 185


Return to Для чайников

Who is online

Users browsing this forum: Bing [Bot] and 5 guests

cron