İki noktadan Çubuk Oluşturma Algoritması Sorunu

Arkadaşlar elimde çubukların başlangıç ve bitişlerinin hangi noktalardan oluştuğu ile ilgili verilerim var. Aynı zamanda noktaların adının ve kordinatlarının x,y,z şeklinde olduğu ayrı verilerim var. Amacım şu şekilde çubukları oluşturabilmem için başlangıç ve bitiş noktalarının koordinatlarını, noktalar listesinde bulup, (x1,y1,z1,x2,y2,z2) şeklinde 6 lı bir liste oluşturmak. Fakat kullandığım döngülerde hep bir noktada takılıyor ya da pc aşırı derece de işlem görüyor. Böyle bir şeyi nasıl yapabilirim. Örnek verileri ekliyeyim ;

Çubuk_1 239 ve 244 nolu noktalardan oluşuyor.
Çubuk_2 234 ve 239 nolu noktalardan oluşuyor.
bu noktaların karşılık geldiği, nokta adı x y z koordinatlarıda aşağıda ki gibi. iki noktanın koordinatını da bulmam gerekiyor. bu şekilde 800 adet çubuk var 200 küsürde nokta var.
|239|77.35831|0|6.59003|
|244|78.97916|0|5.76837|
|234|75.73746|0|7.36655|
|229|74.11667|0|8.09934|
|224|72.49582|0|8.78971|
|219|70.87497|0|9.43881|
|214|69.25417|0|10.04771|
|209|67.63334|0|10.61737|
|204|66.01249|0|11.14866|

cevabınız için şimdiden teşekkür ederim.

Sonlu donguler kullanman lazim. Sonsuz dongu kullaniyorsan, cikis sartlarini tekrar gozden gecir.

“pc asiri derece de islem goruyor” ne demek bilmiyorum ama muhtemelen kullandigin algoritmayi degistirmen gerek.

Peki hangi algoritmayi kullanıyorsun? Bresenham algoritması bu iş için kullanılabilir

2 boyutlu

http://bilgisayarkavramlari.sadievrenseker.com/2008/08/28/bresenham-dogru-cizim-algoritmasi-bresenhams-algorithm/

3 boyutlu

işlem görmeden kasıt while döngüsünde takılı kalıyor ve pc ısınmaya başlııyor.

aslında özel bir algoritma kullanmadım kendim yazmaya çalıştım fakat sürekli bir yerlerde eksiklik oldu ilerleyemedim. gönderdiğiniz algoritmaya baktım fakat ben doğru çizmiycem. çubukların başları ve sonları belli sadece, baş ve son noktalarının koordinatlarını (x1,y1,z1,x2,y2,z2) bu şekilde toplamam gerekiyor.

Bir tane SELECT query’sine bakar.

o nasıl oluyor hocam bilmiyorum malesef :slight_smile: şuan zaten ikili eşleştirme sorununu halledebilirsem 6 lı şekilde birleştirebilirim diye düşünüyorum :slight_smile:

Başlık iki noktadan bir çubuk oluşturma olduğu için aklıma direkt bu algoritma geldi. Bu algoritmada da iki uç nokta var elimizde ve bu algoritma sayesinde aradaki tüm noktaları buluyorsunuz. Bu noktaları birleştirdiğiniz zaman bir çubuk elde etmiş oluyorsunuz

1 Beğeni