2011-11-19 15 views
10

2B çizgi parçalarını bir araya getirmenin bir yolunu arıyorum. Bir çizgi parçası, iki vektör noktasından, çizgi parçasının başlangıcı ve çizgi parçasının bitiş noktasından oluşur.2d çizgi parçalarını birleştir

Aynı düz çizgiyi oluşturmaları gerektiği gibi görünen çizgi parçalarına katılmak istiyorum, Tamamen farklı yönelimlerden oluşuyorlarsa ancak birbirlerinin yakınında 2 noktaya sahiplerse, satır segmentlerine katılmak istemiyorum. Bunu kullanacağım sistem bir bilgisayar görüş sistemidir, böylece elde edilen çizgi parçaları mükemmel olmayacaktır, yani yönelimler biraz kapalı olabilir, bölümler tam uzunlukta olmayabilir.

aşağıdaki 3 örnekler ben birlikte katılmak istiyorum çizgi segmentlerinin türünden bahsediyor düşünüyorum:

Example

Teşekkür

cevap

8

Bu hesaplamalı geometri problemi ile ilgili ders kitaplarında bazı çözümler olabilir olduğunu Ancak bu sorunların genellikle çözülmesi çok zor olduğu konusunda uyarılır ve sonlu hassaslık gerçek bir sorundur. Bu problemle ilgili olarak (2B'de), muhtemelen aradığınız terimin satırların collinear'a yakın olması. Tipik olarak, satırların eşgüdümlü olup olmadığını belirlemek için yaptığınız şey, önce bir vector representation içine koymak, sonra vektörleri arasında nokta ürününü almak, bu da çizgiler arasındaki açının kosinüsüne eşit olacaktır. Yani, eğer bu değer bire yakınsa, onlar collinear'a yakındırlar ve birleştirilmelidirler. hatlar katılmasına gerek yeterince yakın ise

sonraki sorun belirlemektir. Bunu, intersect satırlarını bularak veya başlangıç ​​ve bitiş noktaları çok yakın olan çizgiler bularak yapabilirsiniz ... Genel olarak bu kadar kolay değil, ama muhtemelen% 95'i bu şekilde alabilirsiniz.