knoop "Kn9". tergug naar de inleiding
met de classes "Kn9" , "Kn7" en "Rechthoek" kan oa een Tibetaanse knoop worden samengesteld.
De schets van de Tibetaanse knoop staat onder deze class
argumenten van de constructor
1) grootte n, 2) lr =1 , lr = 0, 3) draaipunt d, 4) x draaipunt, 5) y draaipunt 6), hoek in graden, 7) kleur van de vorm c1, 8) lijndikte sw, 9) lijnkleur c2
class Kn9 extends Vormen {
// 1 2 3 4 5 6 7 8 9
Kn9(float n_, int lr_, int d_, float x_, float y_, float hoek_, color c1_, float sw_, color c2_) {
super();
n = n_;
lr = lr_;
d = d_;
x = x_;
y = y_;
hoek = hoek_;
c1 = c1_;
sw = sw_;
c2 = c2_;
}
void display() {
fill(c1);
strokeWeight(sw);
stroke(c2);
pushMatrix();
translate(x, y);
rotate(radians(hoek));
beginShape();
if (d == 0 && lr == 1) {vertex(-1.5*n,2*n); vertex(-1.5*n,-2*n); vertex(1.5*n,-2*n);vertex(1.5*n,n); vertex(-n/2,n);
vertex(-n/2,0); vertex(n/2,0); vertex(n/2,-n); vertex(-n/2,-n); vertex(-n/2,2*n);}
if (d == 0 && lr == 0) {vertex(-1.5*n,n); vertex(-1.5*n,-2*n); vertex(1.5*n,-2*n);vertex(1.5*n,2*n);vertex(n/2,2*n);
vertex(n/2,-n); vertex(-n/2,-n); vertex(-n/2,0); vertex(n/2,0); vertex(n/2,n);}
if (d == 1 && lr == 1) {vertex(0,0); vertex(0,-4*n); vertex(3*n,-4*n); vertex(3*n,-n); vertex(n,-n);
vertex(n,-2*n); vertex(2*n,-2*n); vertex(2*n,-3*n); vertex(n,-3*n); vertex(n,0);}
if (d == 1 && lr == 0) {vertex(0,0); vertex(0,-3*n); vertex(3*n,-3*n); vertex(3*n,n); vertex(2*n,n);
vertex(2*n,-2*n); vertex(n,-2*n); vertex(n,-n); vertex(2*n,-n); vertex(2*n,0);}
if (d == 2 && lr == 1) {vertex(0,4*n); vertex(0,0); vertex(3*n,0); vertex(3*n,3*n); vertex(n,3*n);
vertex(n,2*n); vertex(2*n,2*n); vertex(2*n,n); vertex(n,n); vertex(n,4*n);}
if (d == 2 && lr == 0) {vertex(0,3*n); vertex(0,0); vertex(3*n,0); vertex(3*n,4*n); vertex(2*n,4*n);
vertex(2*n,n); vertex(n,n); vertex(n,2*n); vertex(2*n,2*n); vertex(2*n,3*n);}
if (d == 3 && lr == 1) {vertex(-3*n,4*n); vertex(-3*n,0); vertex(0,0); vertex(0,3*n); vertex(-2*n,3*n);
vertex(-2*n,2*n); vertex(-n,2*n); vertex(-n,n); vertex(-2*n,n); vertex(-2*n,4*n);}
if (d == 3 && lr == 0) {vertex(-3*n,3*n); vertex(-3*n,0); vertex(0,0); vertex(0,4*n); vertex(-n,4*n);
vertex(-n,n); vertex(-2*n,n); vertex(-2*n,2*n); vertex(-n,2*n); vertex(-n,3*n);}
if (d == 4 && lr == 1) {vertex(-3*n,n); vertex(-3*n,-3*n); vertex(0,-3*n); vertex(0,0); vertex(-2*n,0);
vertex(-2*n,-n); vertex(-n,-n); vertex(-n,-2*n); vertex(-2*n,-2*n);vertex(-2*n,n);}
if (d == 4 && lr == 0) {vertex(-3*n,-n); vertex(-3*n,-4*n); vertex(0,-4*n); vertex(0,0); vertex(-n,0);
vertex(-n,-3*n); vertex(-2*n,-3*n); vertex(-2*n,-2*n); vertex(-n,-2*n); vertex(-n,-n);}
if (d == 5 && lr == 1) {vertex(-n,n); vertex(-n,-3*n); vertex(2*n,-3*n); vertex(2*n,0); vertex(0,0);
vertex(0,-n); vertex(n,-n); vertex(n,-2*n); vertex(0,-2*n); vertex(0,n);}
if (d == 5 && lr == 0) {vertex(-2*n,-n); vertex(-2*n,-4*n); vertex(n,-4*n); vertex(n,0); vertex(0,0);
vertex(0,-3*n); vertex(-n,-3*n); vertex(-n,-2*n); vertex(0,-2*n); vertex(0,-n);}
if (d == 6 && lr == 1){vertex(-n,0); vertex(-n,-4*n); vertex(2*n,-4*n); vertex(2*n,-n); vertex(0,-n);
vertex(0,-2*n); vertex(n,-2*n); vertex(n,-3*n); vertex(0,-3*n); vertex(0,0);}
if (d == 6 && lr == 0){vertex(-2*n,0); vertex(-2*n,-3*n); vertex(n,-3*n); vertex(n,n); vertex(0,n);
vertex(0,-2*n); vertex(-n,-2*n); vertex(-n,-n); vertex(0,-n); vertex(0,0);}
endShape(CLOSE);
popMatrix();
}
}
De schets van de Tibetaanse of oneindige knoop
De schets maakt gebruik van objecten van de classes "Kn9" , "Kn7" , "Rechthoek" en de superclass "Vormen"
Vormen [] vorm;
void setup() {
//size(960,540);
fullScreen(P3D);
float x = 0;
float y = 0;
float n = height/15;
int klvorm = #91E84B;
int alfV = 200;
int alfS = 200;
int stroke = #E8A47C;
float sw = height/100;
vorm = new Vormen[9];
vorm[0] = new Rechthoek (n, 3*n, 0,x, y, 0, color(klvorm,alfV), sw, color(stroke,alfS));
vorm[1] = new Rechthoek (3*n, n, 0,x, y-2*n, 0, color(klvorm,alfV), sw, color(stroke,alfS));
vorm[2] = new Rechthoek (3*n, n, 0,x, y+2*n, 0, color(klvorm,alfV), sw, color(stroke,alfS));
vorm[3] = new Kn9 (n, 0, 0, x-3*n, y-2.5*n, 0, color(klvorm,alfV), sw, color(stroke,alfS));
vorm[4] = new Kn7 (n, 0, 0, x+n, y-2.5*n, 0, color(klvorm,alfV), sw, color(stroke,alfS));
vorm[5] = new Kn7 (n, 0, 0, x-2.5*n, y+n, -90, color(klvorm,alfV), sw, color(stroke,alfS));
vorm[6] = new Kn7 (n, 0, 0, x+2.5*n, y-n, 90, color(klvorm,alfV), sw, color(stroke,alfS));
vorm[7] = new Kn7 (n, 0, 0, x-n, y+2.5*n, 180,color(klvorm,alfV), sw, color(stroke,alfS));
vorm[8] = new Kn9 (n, 0, 0, x+3*n, y+2.5*n, 180,color(klvorm,alfV), sw, color(stroke,alfS));
}
void draw() {
background(#E6FBFF);
translate(width/2, height/2);
rotate(radians(45));
for (int i = 0; i< 9; i++)
{
vorm[i].display();
}
}