Plazma sayı 3, sayfa 116

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 116

Bu değerleri tablolayabiliriz. Ama sonuç olarak bunu da formülüze etmek mümkün. Şöyle ki bd = 2 ^ (7 - xk)

Evet "bd" yani byte değerini 2'nin (7-xk). üssünü alarak bulabiliyoruz.

Uff puff. Peki başka bir şey kaldı mı? Ne yazık ki evet... Ama ufak bir şey. Biz bu byte'a doğrudan bir değer verdiğimizde byte'ın eski değerini silmiş oluyoruz. Bu durumda ekrana basmak istediğimiz bir nokta, aynı byte'a denk gelen diğer 7 noktayı silmiş oluyor. Bunu engellemek için OR'lamak lazım. Matematikteki "veya" ifadesini bir hatırlayalım.

%11010001

%10001010

%11011011

Byte'ın eski değeriyle "bd" değerini OR'ladığımız takdirde eğer o piksel daha önceden basılmışsa bir değişim olmayacak, basılmamışsa basılacak ve diğer bitler durumdan etkilenmeyecek. Örnek olarak byte'ın ilk ve son bitlerine daha önceden nokta konulmuş olduğunu varsayalım ve biz 3 numaralı bit'e (2^3) OR'layarak bir nokta koyalım.

%10000001 <- Orijinal değer

%00001000 <- Yeni basılan nokta

%10001001 <- Sonuç değeri

İşte bu sonuç değeri tam istediğimiz değer! Şimdi uzuuun uzun anlattığımız bunca parçalanmış formülü toparlayalım. VICHaritasi dizisine kısaca "vh" diyecek olursak;

ai = yi + xi bd = 2 ^ (7 - xk)

vh[ai] = vh[ai] OR bd

İşte formül bu. Şimdi yi ve xi'yi yerlerine koyalım.

ai = (ys * 320 + yk) + (xs * 8)

bd = 2 ^ (7 - xk)

vh[ai] = vh[ai] OR bd

Şimdi de ys, yk, xs ve xk değerlerini de yerine koyalım.

Klavyeyle gezinmek için ← ve → tuşları.