Aracılığıyla paylaş


Nasıl yapılır: Çizgiler ve Eğrilerle Düzgünleştirme

Bir çizgi çizmek için GDI+ kullandığınızda, çizginin başlangıç noktasını ve bitiş noktasını sağlarsınız, ancak çizgideki tek tek pikseller hakkında herhangi bir bilgi sağlamanız gerekmez. GDI+, belirli bir görüntü cihazında çizgiyi göstermek üzere hangi piksellerin açılacağını belirlemek için görüntü sürücüsü yazılımıyla birlikte çalışır.

Diğer ad kullanımı

Noktadan (4, 2) noktaya (16, 10) giden düz kırmızı çizgiyi düşünün. Koordinat sisteminin kaynağının sol üst köşede olduğunu ve ölçü biriminin piksel olduğunu varsayalım. Ayrıca x ekseninin sağa ve y ekseninin aşağı işaret ettiğini varsayalım. Aşağıdaki çizimde, çok renkli bir arka plan üzerinde çizilen kırmızı çizginin büyütülmüş görünümü gösterilmektedir.

Line, no antialiasing

Çizgiyi işlemek için kullanılan kırmızı pikseller opaktır. Satırda kısmen saydam piksel yok. Bu çizgi işleme türü çizgiye pürüzlü bir görünüm verir ve çizgi bir merdiven gibi görünür. Merdivenle bir çizgiyi temsil etme tekniğine diğer ad denir; merdiven, teorik çizginin diğer adıdır.

Düzgün -leştirme

Çizgi işlemeye yönelik daha karmaşık bir teknik, yarı saydam piksellerin yanı sıra opak pikselleri de kullanmayı içerir. Pikseller, çizgiye ne kadar yakın olduklarına bağlı olarak saf kırmızıya veya bazı kırmızı ve arka plan rengi karışımına ayarlanır. Bu işleme türüne antialiasing adı verilir ve insan gözünün daha pürüzsüz olarak algılanan bir çizgiyle sonuçlanır. Aşağıdaki çizimde, bazı piksellerin arka planla karıştırarak antialiased çizgi oluşturması gösterilmektedir.

Antialiasing a Line

Düzgünleştirme olarak da adlandırılan antialiasing eğrilere de uygulanabilir. Aşağıdaki çizimde, düzleştirilmiş üç noktanın büyütülmüş görünümü gösterilmektedir.

Antialiasing Curves

Aşağıdaki çizimde aynı elips, bir kez antialiasing olmadan ve bir kez de antialiasing ile gerçek boyutunda gösterilmektedir.

Antialiasing example

Antialiasing kullanan çizgiler ve eğriler çizmek için sınıfının bir örneğini Graphics oluşturun ve özelliğini veya HighQualityolarak AntiAlias ayarlayınSmoothingMode. Ardından aynı Graphics sınıfın çizim yöntemlerinden birini çağırın.

myGraphics.SmoothingMode = SmoothingMode.AntiAlias;
myGraphics.DrawLine(myPen, 0, 0, 12, 8);
myGraphics.SmoothingMode = SmoothingMode.AntiAlias
myGraphics.DrawLine(myPen, 0, 0, 12, 8)

Ayrıca bkz.