glcd anolog saat koordinat hesabı

Başlatan picman, 17 Aralık 2011, 21:15:23

picman

hayırlı günler arkadaşlar fxdev adlı bir arkadaş ın internette yaptığı bir glcd ile anolog saat uygulaması gördüm saniye yelkovan ve akrep in değer lere göre hesabını yapmış ama bu hesabın nasıl olduğunu anlayamadım pek sizden ricam aşağıda verdiğim x ve y koordinat hesabı işlemini kısaca anlatmanız trigonometri ile arası iyi olan bir arkadaş küçük bir açaıklama yaparsa çok sevinirim  :-[

kod aşağıdaki gibi

x=31-28*(sin(pi/2-pi*(*zaman)/30)); 
    	y=31+28*(cos(pi/2-pi*(*zaman)/30));


benim bildiğime göre hipotenüs ün uzunluğu ve alfa açısı belli olan bir dik üçgende komşu kenar uzunluğu x ise   x=  cos alfa * hipotenüs  oluyor yukarıdaki hesapta pi li değer ler var kısacası bu formul nasıl bulunmuş minik bir açıklama yapabilirseniz çok memnun olurum arkadaşlar  ::)

herkese çalışmalarında başarılar...
Bilgi paylaştıkça artar..

cicjoe

#1
sanirim radyan olarak girmek icin pi kullanmis orada. gecen zamana gore, kac radyan donecegini de hesaplamis cos ve sin icinde. kol uzunlugu 28, merkez noktasi da (31;31)'mis.
dedigin gibi: x = cos(a) * koluzunlugu, y = sin(a) * koluzunlugu, ile yapilabilir. tek fark a'yi disarda hesaplaman ve merkezi disarda eklemen olacaktir
x0 = merkezX, y0 = merkezY dersek, (x0;y0)'dan (x0+x1; y0+y1)'e dogru cizilirse olacagini dusunuyorum.

picman

öncelikle ilgin için çok teşekkürler bu kodları ben programıma ekledim çok da güzel çalışıyor fakat mantığını pek anlamadım bir de şöyle birşey denedim

x = 31+27*(sin(90)); y = 31+27*(sin(90));

sonuçta yönü ters olsa bile tam dik yada tam yatay  bir doğru çıkması lazım ama çizgi eğik çıkıyor 90 derece açılı çıkmıyor yukarıdaki gibi yaptığımda zaman değişkeninin değerei 0 iken saniye 12 üzerinde 15 iken 15 üzerinde oluyor yani tam olması gereken yerde burda arkadaş hangi mantıkla bu hesabı yapmış onu anlayamadım bir türlü  :(
Bilgi paylaştıkça artar..

cicjoe

90 olmaz cunku derece olarak girmis olursun oyle,90'i radyana cevirmen lazim. o zaman da pi kullanman gerekir. sin ve cos, parametre olarak radyan ister.

picman

bu c deki fonksiyonun bir özelliğimi arkadaşım hesap makinası ile hesapladığımda doğru çıkıyor o yüzden sordum yani c deki cos() ve sin() fonksiyonları radyan değere göre mi yapılmış
Bilgi paylaştıkça artar..

cicjoe

evet c'deki fonksiyonun ozelligi.
http://pubs.opengroup.org/onlinepubs/9699919799/functions/sin.html
These functions shall compute the sine of their argument x, measured in radians.