Sonlu bir fark şemasının düzensiz bir geometri üzerinde çalışmasının anahtarı, alanın dışında, içinde ve sınırındaki noktaları gösteren değerlere sahip bir 'şekil' matrisine sahip olmaktır. Diyelim ki böyle bir şeklimiz var:
000000001000000110000012100001221000122210012221001221000121000011000001000000000000
Gerçek etki alanı (matrisin sıfır olmayan tüm girişlerinin olduğu yerde) aşağı dönük bir üçgen oluşturur. 1'ler sınırdaki noktaları temsil ederken, 2'ler iç noktaları temsil eder (genellikle unkowns) Düğüm numaralarını aşağıdaki gibi atayabiliriz:
00000000−1000000−1−100000−11−10000−127−1000−13811−100−14912−100−1510−1000−16−10000−1−100000−1000000000000
Burada -1'ler sınır konumlarını temsil eder. Ardından, matristeki tüm girişler üzerinde sonlu bir fark şeması çalıştırabilirsiniz, ancak şemanızı yalnızca iç düğümlerde (1'den 12'ye kadar) yürütmek için bir if ifadesi kullanın. Bu yaklaşım bunu yapmanın en etkili yolu değildir, ancak işi halledecektir ... eğer hafızayı karşılayabiliyorsanız, tüm iç düğümlerin (i, j) girişlerini saklamak ve çalıştırmak iyi olabilir. a yalnızca bu düğümlerde döngü için.
Geometriyi doğrudan oluşturmak için iki şeyden birini yapabilirsiniz:
1. Elle siyah beyaz bir görüntü oluşturun ve programınıza aktarın (uygulanması en kolay, ancak uzamsal çözünürlük dx veya dy'i düzeltmek imkansız).
2. Seçtiğiniz herhangi bir uzamsal çözünürlük için istediğiniz temel şekillerin ayrı temsillerini oluşturacak kod yazın (uygulanması daha zordur, ancak herhangi bir uzamsal çözünürlük dx veya dy'in genel sonlu fark şemaları için daha sağlamdır).
Bunun nasıl yapılacağı hakkında daha fazla bilgi edinmek isterseniz, şu videoları izlemeyi düşünebilirsiniz:
NPTEL Bilgisayar Grafikleri Kursu, Video 2 (Raster Grafikler)
NPTEL Bilgisayar Grafikleri Kursu, Video 3 (Raster Grafikler, devam)
Bunları inceleyin ve bunun sorunuzu çözüp çözmediğini bana bildirin.