.net Developer
DDA algoritması olarak etiketli yazılar
C# 2 boyutlu cisimleri döndürme programı indir-2D-3D
4 Kas
Bu proje ile 2 boyutlu cisimleri panelimizin üzerine çizip şekil üzerinde basit işlemler yapacağız döndürme, öteleme ,simetrisini alma, meyillendirme
Bildiğimiz gibi koordinat sisteminde y ekseni aşağıya doğru gittiğimizde azalırdı. Bilgisayarımızda ise y ekseni aşağıya doğru artar. Öncelikle çizgiyi çizeceğimiz algoritmayı belirleyip fonksiyonunu oluşturuyoruz. Ben DDA algoritmasını kullanacağım fonksiyonumuzu oluşturalım;
void DDAkareciz(int x1, int y1, int x2, int y2)
{
int PikselSayisi;
int dx, dy;
float x, xFark;
float y, yFark;
dx = x2 - x1;
dy = y2 - y1;
PikselSayisi = Math.Abs(dx) > Math.Abs(dy) ? Math.Abs(dx) : Math.Abs(dy);
xFark = (float)dx / (float)PikselSayisi;
yFark = (float)dy / (float)PikselSayisi;
x = (float)x1; More > C# grafik çizme algoritmaları (DDA-Bresenham)
9 Eki
Bütün programlama dillerinde genellikle kullanılan dda ve bresebham algoritmalarını kullanarak örnek uygulama yapcağız
Öncelikle DDA ve bresenham algoritmasının fonksiyonlarını oluşturalım;
DDA algoritması;
void DDACiz(int x1, int y1, int x2, int y2){
int PikselSayisi;
int dx, dy;
float x, xFark;
float y, yFark;
dx = x2 - x1;
dy = y2 - y1;
PikselSayisi = Math.Abs(dx) > Math.Abs(dy) ? Math.Abs(dx) : Math.Abs(dy);
xFark = (float)dx / (float)PikselSayisi;
yFark = (float)dy / (float)PikselSayisi;
x = (float)x1;
y = (float)y1;
while(PikselSayisi--){
PikselBas((int)floor(x + 0.5F), (int) Math.Floor(y + 0.5f));
x += xFark;
y += yFark;
}
}
Bresenham algoritması; void dogruBresenham(int x1, int y1, int x2, int y2) { More >