Noktanın kapalı eğrinin içindeki konumu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
izmirlikemal
Üye
Mesajlar: 155
Kayıt: 10 Oca 2014 01:08
Konum: izmir/Buca

Noktanın kapalı eğrinin içindeki konumu

Mesaj gönderen izmirlikemal »

Merhaba Dostlarım!
Delphi ile bir grafik çalışması yapıyorum. Ancak ilgili olan noktanın konumunu tesbit etmekde zorlandım.
Konuyu daha açık olarak izah etmek istiyorum.
- Yatayda doğru ve düşey düzgün eğrileri olan bir şekil düşünün(Şekli kafamızda şöylede canlandırabiliriz: Çizgileri düzgün olmayan milimetrik kağıt)
Bu şekildeki çizgilerin kesişim noktalarının koordinatları(apsis ve Ordinatları) veri tabanında kayıtlı.
Bu düzgün olmayan milimetrik kağıdın herhangi bir karesinin örneğin ortalarına yakın olan yeri tıkladığımda doğru sonuç alıyorum. Ancak köşelere yakın yere tıkladığımda
bir önceki veya sonraki karenin köşe noktalarını okuyor. Benim istediğim tıkladığım nokta nerede olursa olsun (kapalı alanın içinde olmak şartıyla) bu noktayı çerçeveleyen
düzgün olmayan karenin köşelerinin koordinatlarını bulmak.
Bu konuda bilgisi olan arkadaşların yardımını bekliyorum.
izmirlikemal
Üye
Mesajlar: 155
Kayıt: 10 Oca 2014 01:08
Konum: izmir/Buca

Re: Noktanın kapalı eğrinin içindeki konumu

Mesaj gönderen izmirlikemal »

Arkadaşlar bu konuda bana yardımcı olacak sitede işi bilen 1 kişi dahi yokmu?
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Noktanın kapalı eğrinin içindeki konumu

Mesaj gönderen mrmarman »

Bu serzenişe gerek yok, kendi sorunu okusan çözeceksin. Mouse ile tıklanan yer çizgilerin rengi ise sonuç döndürme, kare içi ise veritabanında var demişsin, ilgili adresi verdir olsun bitsin. Kenarlara göre sapma ne ise bunu deneme yanılma ile bir tablo hazırla x, y durumuna göre sapmayı devreye sok.

Kafada canlandırın diyeceğinize bir kare screen paylaşsaydınız sorunuz daha kolay anlaşılır olurdu.
Resim
Resim ....Resim
omurolmez
Üye
Mesajlar: 187
Kayıt: 31 Eki 2012 11:41

Re: Noktanın kapalı eğrinin içindeki konumu

Mesaj gönderen omurolmez »

Bir arama algoritması ile, test noktasını ve sırayla veritabanındaki kareleri kullanmak gerekir
* Birden fazla kare, notkayı içeriyor olabilir
* Tek bir kare, noktayı içeriyor olabilir
* Hiçbir kare, noktayı içeriyor olabilir

İlk maddenin çözümü için, algoritmanın, basit bir puan mekanizması olmalı ve en yüksek veya en düşük puanlı sonuç aradığınızdır. Dediğimi anlatabilmek adına, kağıda iç içe veya kesişimi olan bir kaç kare çizin.

Böyle düşünerek çözüm bulmaya çalışın, olmazsa tekrar bakalım ...
Ömür Ölmez
izmirlikemal
Üye
Mesajlar: 155
Kayıt: 10 Oca 2014 01:08
Konum: izmir/Buca

Re: Noktanın kapalı eğrinin içindeki konumu

Mesaj gönderen izmirlikemal »

Sayın mrmarman resim paylaşmasını bilmiyorum. Bana yardımcı olursanız ilgili konuyu daha rahat anlatabilirim. Tşk.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Noktanın kapalı eğrinin içindeki konumu

Mesaj gönderen mrmarman »

Denizleri aşarak derede boğulmak gibi olmasın, google ile sormayı işlerin yoğunluğundan atlamış olmanız doğaldır. bkz. http://postimage.org/?lang=turkish
Resim
Resim ....Resim
izmirlikemal
Üye
Mesajlar: 155
Kayıt: 10 Oca 2014 01:08
Konum: izmir/Buca

Re: Noktanın kapalı eğrinin içindeki konumu

Mesaj gönderen izmirlikemal »

Sayın "mrmarman"

Eğer çalışmasını yaptığım grafiğin bir bölümünü paylaşmasını yapabildiysem, Grafik üzerindeki noktalama işaretlerinin önce açıklamak istiyorum.
Noktamızın konumu 1-2-3-4 noktaları ile çevrili bölgenin içinde bulunan A veya B veya C noktalarından
herhangi birisidir.
1,2,3,4 noktalarının koordinatları veritabanında kayıtlı.
Şimdi konuyu açıklamaya çalışayım.

Örneğin Fare ile A veya B veya C noktalarından herhangi birisini tıkladığımda 1,2,3,4 noktalarının koordinatla rını veri tanabından okuyarak ekrana getirmek istiyorum.

A noktasını tıkladığımda herhangi bir sorun olmadan bu
1,2,3,4 noktalarının koordinatlarını buluyorum.(Şekil 1)

Ancak fare ile tıkladığım yer B veya C olduğunda 1 noktasının koordinatını veritabanından getireceği yerde 1.1 noktasının koordinatını 2 noktasının koordinatı yerine 1 noktasının koordinatını 3 noktasının koordinatı yerine 4 noktasının koordinatını,
4 noktasının koordinatı yerine 4.4 noktasının koordinatını veritabanından okuyor.Tıkladığım yer 1-d çizgisinin üstünde veya 4-e çizgisinin altında kalırsa
veri tabanından yanlış değer okuyor.(Şekil 2 gibi oluyor).

Sanırım sorunumu anlatabildim.
Arkadaşım mrmarman ben bu konuyla yaklaşık 1.5 aydır uğraşıyorum ama çözüm bulamadım. Çözüm konusunda yardımcı
olursanız beni bahtiyar edersiniz. Teşekkürlerimi sunarım. İzmirlikemal
http://s29.postimg.org/9kej2m4af/Calisma11.png
http://s15.postimg.org/c8dd84akr/Calisma.png
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Noktanın kapalı eğrinin içindeki konumu

Mesaj gönderen mrmarman »

Merhaba.

(1) Grafik statik ise ilk önereceğim şey grafikteki hücreleri elle sayısallaştırmanız yönündedir.
(2) Bunu bir matrix içerisinde tutun.
(3) Noktaları image üzerinde işaretlerken (X/Y düzenini artık bildiğiniz için) arka planda bu matrix üzerinde nereye isabet ediyorsa onu veritabanında kullanın.

Resim

Kod: Tümünü seç

Var
  xSay : Integer;

procedure TForm1.PanelMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
const
  sc_DragMove=$F012;
begin
  ReleaseCapture;
  TPanel(Sender).Perform(WM_SYSCOMMAND, sc_DragMove, 0);
end;

procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  With TPanel.Create( self ) do
  begin
    Inc(xSay);
    Name        := 'P'+IntToStr(xSay);
    Color       := clRed;
    Font.Color  := clWhite;
    Caption     := IntToStr(xSay);
    Width       := 14;
    Height      := 14;
    Left        := X - (Width  div 2);
    Top         := Y - (Height div 2);
    Parent      := Self;
    ParentBackground := False;
    OnMouseDown := PanelMouseDown;
    Memo1.Lines.Add( Format('Panel : %d = X:%d, Y:%d', [xSay, X,Y]) );
  end;
end;
Resim
Resim ....Resim
izmirlikemal
Üye
Mesajlar: 155
Kayıt: 10 Oca 2014 01:08
Konum: izmir/Buca

Re: Noktanın kapalı eğrinin içindeki konumu

Mesaj gönderen izmirlikemal »

Merhaba
İlk gördüğüm kadarıyla siz 1..27 noktaların koordinatlarının veri tabanında kayıtlı olduğunu düşünüyorsunuz.
Eğer böyle düşünüyorsanız yanlış. Zira KT1,KT2,KT3..KTn doğruları ile IR1,IR2,IR3, IRn doğrularının kesişim noktalarının koordinatları veri tabanında
kayıtlı.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Noktanın kapalı eğrinin içindeki konumu

Mesaj gönderen mrmarman »

Algıda seçicilik bu olsa gerek. Ben aslında metod konusunda yardımcı olmaya çalışıyorum. Noktalar temsilidir. Amaç sayısallaştıracak ortamın yine yazılım tarafından okunarak net olmasıdır.
Resim
Resim ....Resim
omurolmez
Üye
Mesajlar: 187
Kayıt: 31 Eki 2012 11:41

Re: Noktanın kapalı eğrinin içindeki konumu

Mesaj gönderen omurolmez »

Sakınca yoksa, yazdığınız programın ne işe yarayacağını sorabilir miyim ?
Ömür Ölmez
izmirlikemal
Üye
Mesajlar: 155
Kayıt: 10 Oca 2014 01:08
Konum: izmir/Buca

Re: Noktanın kapalı eğrinin içindeki konumu

Mesaj gönderen izmirlikemal »

Grafiğin değerlerini (9 adet)grafiğin üzerinde gezinerek editlere bu 9 adet değeri aktarmak.
Kullanıcı avatarı
esistem
Üye
Mesajlar: 464
Kayıt: 02 Eki 2007 11:22
İletişim:

Re: Noktanın kapalı eğrinin içindeki konumu

Mesaj gönderen esistem »

sanırım arkadaş sektör olarak sordu zira bende merak ettim, bu program hangi sektöre hizmet edicek acaba?
izmirlikemal
Üye
Mesajlar: 155
Kayıt: 10 Oca 2014 01:08
Konum: izmir/Buca

Re: Noktanın kapalı eğrinin içindeki konumu

Mesaj gönderen izmirlikemal »

Isıtma, soğutma sektörü.
cecihan
Üye
Mesajlar: 94
Kayıt: 30 Ara 2006 11:40
İletişim:

Re: Noktanın kapalı eğrinin içindeki konumu

Mesaj gönderen cecihan »

Sorunu çözdünüz mü?. nerede ikamet veya çalışıyorsunuz. aslında size yardımcı olabileceğimi düşünüyorum.( 1990 lı yıllarda harita- cad yazılımı yazmıştım.)
Cevapla