Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
1
İKİ BOYUTLU DÖNÜŞÜMLER
2
Translation (Öteleme)
y 6 5 4 3 2 1 ty tx x
3
Scaling (Ölçeklendirme)
y 6 5 4 3 2 1 x
4
Rotation (Döndürme) y 6 5 4 3 2 1 x R α β
5
Rotation (Döndürme) y 6 5 4 3 2 1 x ? α β
6
Shear (Kaykılma) y 6 5 4 3 2 1 x
7
Matris Gösterimi ve Dönüşümler (1)
Tüm dönüşüm formüllerini genel bir tek formüle dönüştürecek olursak aşağıdaki gibi ifade edebiliriz. Bu ifadeyi matris formunda yazarsak;
8
Matris Gösterimi ve Dönüşümler (2)
Kare matrislerle çalışmak her zaman daha kolay olduğundan matrisimizi kare matris formuna genişletirsek tüm dönüşüm işlemlerimizi bu kare matrisi kullanarak gerçekleştirebiliriz.
9
Matris Gösterimi ve Dönüşümler (3)
Translate Scale Rotate Shear
10
Bileşik Dönüşümler ? y x Birinci Aşama Döndürme yapmak istediğimiz
6 5 4 3 2 1 x Birinci Aşama Döndürme yapmak istediğimiz referans noktasını orjine taşırız (Translate(-4, -1)) Üçüncü Aşama Tekrar cismi eski konumuna öteliyoruz ( Translate(4,1) ) İkinci Aşama Alpha açısı kadar döndürme işlemi yapıyoruz (Rotate(α)) ? α β
11
Bileşik Dönüşümler Bileşik dönüşüm matrisleri her bir dönüşüm matrislerinin ard arda çarpılmasıyla elde edilir. Translate(4,1) Rotate(α) Translate(-4,-1)
12
3D Dönüşümler
14
Rotation
15
GDI+ ÖRNEK private void Form1_Paint(object sender, PaintEventArgs e) {
Graphics g = e.Graphics; Pen p = new Pen(Color.Pink, 5); g.DrawRectangle(p, 50, 50, 100, 100); g.TranslateTransform(100, 100); g.RotateTransform(45); g.TranslateTransform(-100, -100); p.Color = Color.Blue; }
16
GDI+ ÖRNEK (2) private void Form1_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; Pen p = new Pen(Color.Pink, 5); g.DrawRectangle(p, 50, 50, 100, 100); Matrix transformMtrx = new Matrix(); transfromMtrx.Translate(50,50); transformMtrx.Scale(0.5f, 0.5f); transformMtrx.Rotate(45); transformMtrx.Translate(-50,-50); g.MultiplyTransform(transformMtrx); p.Color = Color.Blue; }
17
Java2D ÖRNEK public void paint(Graphics g){
Graphics2D g2d = (Graphics2D)g; Rectangle2D.Double rect = new Rectangle2D.Double(50,50,100,100); g2d.setColor(Color.PINK); BasicStroke bs = new BasicStroke(5); g2d.setStroke(bs); g2d.draw(rect); g2d.translate(100, 100); g2d.rotate(Math.PI/4); g2d.translate(-100,-100); g2d.setColor(Color.blue); }
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.