(http://i.hizliresim.com/rZEX23.png)
yukardaki örnekten gidelim,(küçük kareler 1cmx1cm dir)
mavi noktayı rastgele seçeceğiz, mavi noktaya göre 0-359 derecede 10cm yarıçaplı (örnek) bir dairede, hangi kutuları taradığını bulabilirmiyiz ?
(mavi noktanın yeri ve tarama mesafesi değişebilir)
hocam ben soruyu tam olarak anlayamadim. :-\
x= ycap*cos( açı)
y=ycap*sin( açı)
yanlış hatırlamıyorsam 0-360 derece taramada x ve y tam sayı cinsinden alındığında dış kutuların sınırını verir.
eski dos altındaki basic'de daire çizdirmek için kullanılan formül.
Matris ile gidilebilir.
Çember fonksiyonu kullanılabilir mi acaba?
Alıntı yapılan: mehmet - 10 Ocak 2016, 00:07:44
Çember fonksiyonu kullanılabilir mi acaba?
hocam. amac noktayi bulmaksa. cember radus u adim adim arttirilarak. arindan kabil hocamin dedigi gibi. tek tek point tarayarakta olabilir.
kare yi kullanarak. bir kenarini tek tek buyuterekte yapilabilir ama soru tam olarak ne istiyor ben okuyup anlayamiyorum? :-\
mesaj birleştirme:: 10 Ocak 2016, 00:28:35
birde. matematiksel olarak cember i kullanmak daha hizli olur. yani cember yari capi buyudukce point e kare den daha hizli ulasir. (yani bulana kadar biz daha az point taramis oluruz)ama microcontroller in sine cosine function lari hesaplarken ne kadar sure harcadigina bakmak lazim. cok vakit harciyorsa. kare yontemi daha hizli sonuc cikartabilir.
şöyle düşünün
Mavi nokta merkez olarak alıp bir ışık tutacak olsak,
0. derecede 10cm ye kadar hangi kutuları
1. derecede 10cm ye kadar hangi kutuları
....
şeklinde 359. dereceye kadar bir array çıkartabilirmiyiz (her kutucuğun bir adı olduğunu varsayarsak.)
mesaj birleştirme:: 10 Ocak 2016, 00:35:40
(bunu 100 cm olarak taradığımızda Arada atlamamız gerekenler olacak sanırım.)
Birer derece ile gitmeniz gerekmez. En dıştaki iki kare ortalayacak şekilde bir açı seçerek tararsanız olur.
Açı sabitken sadece yarı çapı birer cm artırılarak hesaplanırsa hangi karelere denk geldiği hesaplanabilir.
Tüm işlem sonucunda bir matris elde edersin, daire dış çizgisi üzerinde kareler farklı olsa bile daire merkezine yaklaştıkça ortak kullanılan kareler olacaktır.
Bu tür bir yapı grafik lcd üzerinde kendi grafiğini oluşturmak istediğin zaman baya bir sorun oluyordu. Çözünürlük düşük olduğu için çizgi göze batacak kadar kırıklı görünüyordu.
benim 1 derece ile gitmem gerek,
istediğim hepsini belli bir çapta taramak değil, 1 dereceye göre taranması gerekenleri bulmak
Elektronik hedef mi bu?
Anlamadım Hocam Nasıl Elektronik Hedef, Ortada Hedef Yok ki
Sensör dizisi ile oluşturulmuş hedefe ışık tabancasıyla atış yapıldığında ışığın çarptığı noktaya göre bir puanlama mı yapmaya çalışıyorsun diye aklıma soru geldi.
yok hocam, durum öyle değil. image ı yatay olarak düşünün (ve biraz da büyük, hatta devasa) 1 derece çözünürlülükte lazer tutun lazerin mesafesi örneğin 100km olsun, hangi kutuların üzerinden bu lazer geçer.
(yakın mesefade hepsinin üzerinden geçer ama uzak mesafede 1 dereceden dolayı arada atladıklaırı olacaktır.)
Hocam bi grafik lcd kutuphanesindeki daire cizdirme ve line cizdirme fonksiyonlari, bu soruya cevap olur.
Daire cizim fonksiyonu aciya gore en uc noktadaki kutunun x,y kordinatini verir. Line fonksiyonu da en uc noktadan merkeze hangi kutulardan gectigini verir
Benim anladığım siz bir çizgi değil alan olarak istiyorsunuz.Yani 1 derece dediğiniz zaman 0 ve 1 derece arasındaki bütün kutuları görmek istiyorsunuz gibi anladım. Çap değilde dilim olarak. Doğru mu ?
Alıntı yapılan: PROTECH_ - 10 Ocak 2016, 10:11:39
Hocam bi grafik lcd kutuphanesindeki daire cizdirme ve line cizdirme fonksiyonlari, bu soruya cevap olur.
Daire cizim fonksiyonu aciya gore en uc noktadaki kutunun x,y kordinatini verir. Line fonksiyonu da en uc noktadan merkeze hangi kutulardan gectigini verir
+1
Dairesel Bresenham Algoritması.
https://en.wikipedia.org/wiki/Midpoint_circle_algorithm (https://en.wikipedia.org/wiki/Midpoint_circle_algorithm)
(http://i.hizliresim.com/RoQ7Wj.png) (http://hizliresim.com/RoQ7Wj)
topçu atışı yaptığımızı düşünelim. biz mavi karedeyiz kırmızı ise hedef. hedefe şekildeki gibi bir açı ve menzil ile atış yaptığımızda yeşil kareler ateş altında kalıyor. Muhittin hocam bunu hesaplamanın pratik yolunu arıyor.
parametreler;
-Bulunduğumuz Yerin Koordinatı,
-Açı,
-Mesafe,
-Menzildeki Karelerin Koordinatı.
soru bu sanırım, bu algoritmayı yazmak uzun sürebilir ama çok öğretici olacağı kesin. işlemleri parçalara ayırmak, sakin kafa ve bol zaman lazım.
ben mesajı yazarken cevap gelmiş. ;)