Yazan : Şadi Evren ŞEKER

Bilgisayar grafiklerinde şekil değiştirme işlemlerinden birisidir. Bu işlemin amacı bir şekli mevcut konumu ve yönü bozulmadan büyültmek ve küçültmektir (Zoom in , Zoom out). Aşağıdaki örnekte gösterilen ölçekleme işleminin formülü verilmiştir:

Yukarıdaki ölçekleme işlemi için :

x’ = x . sx
y’ = y . sy

formülleri kullanılabilir. Buradaki sx ve sy değerleri yeni ölçeği belirlemektedir. Yani örneğin şeklin 2 misli büyümesi istenirse sx = 2 ve sy =2 değerleri ile şeklin orjinal x ve y değerleri çarpılır.

Yukarıdaki bu çarpam matrisi

sx   0
0   sy

şeklinde ifade edilebilir ve P’ = P S çarpımı olcekleme (scaling) olmuş olur.

Burada bir yan etki şeklin büyürken aynı zamanda da taşınıyor olmasıdır. Bu problemin çözümü için sabit bir noktayı kerteriz alarak ölçekleme işlemi sonrasında bu noktaya göre şeklin geri taşınması mümkündür:

x’ = x . sx + xf (1-sx)
y’ = y . sy + yf (1-sy)

Yukarıdaki ölçekleme işlemi, ölçekleme işleminin tersi kadar taşıma işlemini de içermektedir.

Yorumlar

  1. osman kopmaz

    Demin bir soru yöneltmiştim. Geri alıyorum. Sizin nomenklatürünüze göre shx x koordinatındaki kayma faktörü oluyor. Buradaki sx ve sy’nin x ve y’ye ait ölçekleme çarpanları olması gibi.

  2. Şadi Evren ŞEKER Article Author

    Evet aslında bunlar benim koyduğum isimler değil. Literatürde çeşitli kayanklarda bu şekilde geçiyor ve uyum olması açısından literatürü takip ediyorum. Sizin de belirttiğiniz gibi aslında
    shx : shearing x
    sx : scaling x
    olarak kısaltılmış çarpanlar.

  3. Şadi Evren ŞEKER Article Author

    Herhangi bir şekli (dikdörtgen de dahil) bir referans noktasına göre (üzerinde, içinde veya dışında) ölçeklemek (scaling) istiyorsak, bu referans noktasını merkeze getirecek şekilde şekli (örneğin dikdörtgen) taşır sonra koordinatları yazıda anlatıldığı şekilde ölçekleme değeri ile çarpar sonra da eski yerine geri taşırız.

    Şayet yine de anlaşılmıyorsa dilerseniz sayısal örnek de verebilirim.

    Başarılar

  4. Şadi Evren ŞEKER Article Author

    örnek olarak dikdörtgenin 4 noktasının koordinatları aşağıdaki şekilde olsun:

    (0,0)
    (2,0)
    (2,3)
    (0,3)

    ve dikdörtgenin üzerindeki (1,3) noktasına göre 2 misline çıkarmak istiyor olalım.

    Önce dikdörtgenin ölçekleneceği referans numarası olan (1,3) merkeze taşınır. Bu durumda merkeze taşımak için merkez koordinatları olan (0,0)’dan yeni referans no olan (1,3) çıkarılarak taşıma miktarı bulunur:

    (0,0) – (1,3) = (-1,-3)

    Bu değer kadar bütün noktalar taşınır:

    (0,0) + (-1,-3) = (-1,-3)
    (2,0) + (-1,-3) = (1,-3)
    (2,3) + (-1,-3) = (1,0)
    (0,3) + (-1,-3) = (-1,0)

    Yeni koordinatlar referans noktasına göre merkeze taşınmış noktalardır. Şimdi ölçekleme yapabiliriz yani 2 misline çıkarmak istiyorsak 2 ile her nokta çarpılacak

    (-1,-3) x 2 = (-2,-6)
    (1,-3) x 2 = (2,-6)
    (1,0) x 2 = (2,0)
    (-1,0) x 2 = (-2,0)

    Son adımda (-1,-3) kadar taşıma işlemini geri alıyoruz yani (1,3) değerinde taşıyoruz:

    (-2,-6) + (1,3) = (-1,-3)
    (2,-6) + (1,3) = (3,-3)
    (2,0) + (1,3) = (3,3)
    (-2,0) + (1,3) = (-1,3)

    son olarak bu dört nokta ilk dikdörtgenin verilen referansa göre 2 misline çıkarılmış hali olur.

    Daha iyi anlamak için dikdörtgenin bütün koordinatlarını ölçekli olarak çizerek adım adım nasıl değiştiğini görebilirsiniz.

    Başarılar

sude için bir cevap yazın Cevabı iptal et

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir