c de grafik cizim yardım?

ermess
25-12-2010, 18:04   |  #1  
OP Üye
Teşekkür Sayısı: 0
57 mesaj
Kayıt Tarihi:Kayıt: Kas 2010

arkadaşlar şimdi bn düzgün bir altıgen cizdirmek istiyorum ama grafik fonksiyonlari kullanılmadan yani önce piksel bazda bi cember cizdirip sonra  yani bu cember üzerindeki noktalar belli aralıkta olacak altıgen gibi gözükecek..acaba o aralik için   1 /2nr  *k die bir deger mi atayacam bişeyler yaptım ama olmadi   YARDIM LÜTFEN?

muh34
25-12-2010, 21:58   |  #2  
Yıllanmış Üye
Teşekkür Sayısı: 0
215 mesaj
Kayıt Tarihi:Kayıt: Eki 2010

Anladıgım kadarıyla drawpoly() fonksiyonunun yaptıgı işi siz kendiniz tasarlamak istiyorsunuz.Ancak sorunuzu dogru anladıysam,altıgen çokgenini bir cemberin koordinat noktalarını ayırarak yapmanız neredeyse imkansız olacaktır.Cunku cemberi 360 derecelik tam bir daire olarak dusunursek,altı gen kesim noktaları mevcut cember uzerinde ayrılsa bile,goruntuyu çokgene entegre etmek olumsuz sonuc verecektir.Çünkü bir cemberin fiziksel yapısı köşe koordinat nokta yapısına aykırıdır.Fakat yapmak istediginiz yontemi line() fonksiyonunu kullanarak cok daha rahat bir şekilde gercekleştirebilirsiniz.Ekrandaki koordinat noktalarını denk getirerek 6 adet line() fonksiyonu ile altı gen çokgenini yapmak cok daha rahat olacaktır.
Başarılar

ermess
25-12-2010, 22:52   |  #3  
OP Üye
Teşekkür Sayısı: 0
57 mesaj
Kayıt Tarihi:Kayıt: Kas 2010

haklisinz .bunu dikdörtgene indirgesek.. yani dikdörtgenin köşeleri cemberin üzerinde olacak..yani aslinda  biz arka planda bir cember cizecegiz yalnız onu dörtgen olarak görecegiz.arkaplan rengi cemberin rengi ayni sadece sadece konumlandirdigimiz köse noktalari farkli bu nasil olur acaba?

muh34
25-12-2010, 22:54   |  #4  
Yıllanmış Üye
Teşekkür Sayısı: 0
215 mesaj
Kayıt Tarihi:Kayıt: Eki 2010

Evet bahsettiginiz bu yöntem olabilir.

Başarılar

censez41
25-12-2010, 23:18   |  #5  
censez41 avatarı
Yıllanmış Üye
Teşekkür Sayısı: 3
1,705 mesaj
Kayıt Tarihi:Kayıt: Nis 2009

arkadaşım çember çizme algoritması bu
int derece;
for (derece=0; derece <360; derece++)
{
double radyan = derece * 3.14159265358979/180.0;
double x=cos(radyan);
double y=sin(radyan);
/*(x,y) koordinatlarını kullan */
}
kitaptan yazdım  :)

ermess
26-12-2010, 00:21   |  #6  
OP Üye
Teşekkür Sayısı: 0
57 mesaj
Kayıt Tarihi:Kayıt: Kas 2010

yaptım saolasin arkadaşm:)