[zurück] | 2.2. Entwicklung des Plugins (Polygone) |
[vor] |
Als nächstes können wir die Polygone hinzufügen.
// Quadrate setzen
...// Zähler zurücksetzen
......zz = 0;
...// Schleife
......for (j=0; j<Nv; j++)
......{
..........for (i=0; i<Nu; i++)
..........{
..............// Punkte für ein Quadrat definieren
.................P1 = i * (Nv + 1) + j;
.................P2 = i * (Nv + 1) + j + 1;
.................P3 = (i + 1) * (Nv + 1) + j + 1;
.................P4 = (i + 1) * (Nv + 1) + j;
..............// Quadrat.speichern
.................M->SetQuadrangle(zz,P1,P2,P3,P4);
..............// Zähler erhöhen
.................zz = zz + 1;
..........}
......}
Zur Benennung der 4 Punkte eines Quadrats können wir auf die Berechnung der Linien zurückgreifen. Wir greifen uns aus dem Gitternetz (siehe Abb. 1) 4 Punkte (P38, P39, P46, P45) als Beispiel heraus.
Abb. 4
Bei der Berechnung dieses Quadrates haben die Schleifenindizes die Werte i=5 und j=3. Die 4 Punkte ordnen wir im Uhrzeigersinn an.
Punkt |
Formel |
Resultat |
|
38 |
i*(Nv + 1) + j |
5*(6 + 1) + 3 = 38 |
|
39 |
i*(Nv + 1) + j + 1 |
5*(6 + 1) + 3 + 1 = 39 |
|
46 |
(i + 1)*(Nv + 1) + j + 1 |
(5 + 1)*(6 + 1) + 3 + 1 = 46 |
|
45 |
(i + 1)*(Nv + 1) + j |
(5 + 1)*(6 + 1) + 3 = 45 |
Das Skript mit allen Linien und Quadraten kann getestet werden (M_Test4.cof), das Plugin ist damit fertig. Um es etwas komfortabler zu machen können wir noch einen Eingabedialog hinzufügen.
[zurück] | [Inhaltsverzeichnis] | [vor] |