kopia lustrzana https://github.com/villares/sketch-a-day
				
				
				
			first step!
							rodzic
							
								
									6aa0dcb224
								
							
						
					
					
						commit
						b7154d15a0
					
				| 
						 | 
					@ -30,7 +30,6 @@ PlatonicSolid PlatonicFactory(int type, color c) {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
class Icosahedron extends PlatonicSolid {
 | 
					class Icosahedron extends PlatonicSolid {
 | 
				
			||||||
  // icosahedron
 | 
					  // icosahedron
 | 
				
			||||||
  float x, y, z;
 | 
					 | 
				
			||||||
  float radius;
 | 
					  float radius;
 | 
				
			||||||
  PVector topPoint;
 | 
					  PVector topPoint;
 | 
				
			||||||
  PVector[] topPent = new PVector[5];
 | 
					  PVector[] topPent = new PVector[5];
 | 
				
			||||||
| 
						 | 
					@ -44,13 +43,10 @@ class Icosahedron extends PlatonicSolid {
 | 
				
			||||||
  // constructor
 | 
					  // constructor
 | 
				
			||||||
  Icosahedron(float radius) {
 | 
					  Icosahedron(float radius) {
 | 
				
			||||||
    this.radius = radius;
 | 
					    this.radius = radius;
 | 
				
			||||||
 | 
					 | 
				
			||||||
    c = dist(cos(0)*radius, sin(0)*radius, cos(radians(72))*radius, sin(radians(72))*radius);
 | 
					    c = dist(cos(0)*radius, sin(0)*radius, cos(radians(72))*radius, sin(radians(72))*radius);
 | 
				
			||||||
    b = radius;
 | 
					    b = radius;
 | 
				
			||||||
    a = (float)(Math.sqrt(((c*c)-(b*b))));
 | 
					    a = (float)(Math.sqrt(((c*c)-(b*b))));
 | 
				
			||||||
 | 
					 | 
				
			||||||
    triHt = (float)(Math.sqrt((c*c)-((c/2)*(c/2))));
 | 
					    triHt = (float)(Math.sqrt((c*c)-((c/2)*(c/2))));
 | 
				
			||||||
 | 
					 | 
				
			||||||
    for (int i=0; i<topPent.length; i++) {
 | 
					    for (int i=0; i<topPent.length; i++) {
 | 
				
			||||||
      topPent[i] = new PVector(cos(angle)*radius, sin(angle)*radius, triHt/2.0f);
 | 
					      topPent[i] = new PVector(cos(angle)*radius, sin(angle)*radius, triHt/2.0f);
 | 
				
			||||||
      angle+=radians(72);
 | 
					      angle+=radians(72);
 | 
				
			||||||
| 
						 | 
					@ -71,26 +67,26 @@ class Icosahedron extends PlatonicSolid {
 | 
				
			||||||
      // icosahedron top
 | 
					      // icosahedron top
 | 
				
			||||||
      beginShape();
 | 
					      beginShape();
 | 
				
			||||||
      if (i<topPent.length-1) {
 | 
					      if (i<topPent.length-1) {
 | 
				
			||||||
        vertex(x+topPent[i].x, y+topPent[i].y, z+topPent[i].z);
 | 
					        vertex(topPent[i].x, topPent[i].y, topPent[i].z);
 | 
				
			||||||
        vertex(x+topPoint.x, y+topPoint.y, z+topPoint.z);
 | 
					        vertex(topPoint.x, topPoint.y, topPoint.z);
 | 
				
			||||||
        vertex(x+topPent[i+1].x, y+topPent[i+1].y, z+topPent[i+1].z);
 | 
					        vertex(topPent[i+1].x, topPent[i+1].y, topPent[i+1].z);
 | 
				
			||||||
      } else {
 | 
					      } else {
 | 
				
			||||||
        vertex(x+topPent[i].x, y+topPent[i].y, z+topPent[i].z);
 | 
					        vertex(topPent[i].x, topPent[i].y, topPent[i].z);
 | 
				
			||||||
        vertex(x+topPoint.x, y+topPoint.y, z+topPoint.z);
 | 
					        vertex(topPoint.x, topPoint.y, topPoint.z);
 | 
				
			||||||
        vertex(x+topPent[0].x, y+topPent[0].y, z+topPent[0].z);
 | 
					        vertex(topPent[0].x, topPent[0].y, topPent[0].z);
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      endShape(CLOSE);
 | 
					      endShape(CLOSE);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      // icosahedron bottom
 | 
					      // icosahedron bottom
 | 
				
			||||||
      beginShape();
 | 
					      beginShape();
 | 
				
			||||||
      if (i<bottomPent.length-1) {
 | 
					      if (i<bottomPent.length-1) {
 | 
				
			||||||
        vertex(x+bottomPent[i].x, y+bottomPent[i].y, z+bottomPent[i].z);
 | 
					        vertex(bottomPent[i].x, bottomPent[i].y, bottomPent[i].z);
 | 
				
			||||||
        vertex(x+bottomPoint.x, y+bottomPoint.y, z+bottomPoint.z);
 | 
					        vertex(bottomPoint.x, bottomPoint.y, bottomPoint.z);
 | 
				
			||||||
        vertex(x+bottomPent[i+1].x, y+bottomPent[i+1].y, z+bottomPent[i+1].z);
 | 
					        vertex(bottomPent[i+1].x, bottomPent[i+1].y, bottomPent[i+1].z);
 | 
				
			||||||
      } else {
 | 
					      } else {
 | 
				
			||||||
        vertex(x+bottomPent[i].x, y+bottomPent[i].y, z+bottomPent[i].z);
 | 
					        vertex(bottomPent[i].x, bottomPent[i].y, bottomPent[i].z);
 | 
				
			||||||
        vertex(x+bottomPoint.x, y+bottomPoint.y, z+bottomPoint.z);
 | 
					        vertex(bottomPoint.x, bottomPoint.y, bottomPoint.z);
 | 
				
			||||||
        vertex(x+bottomPent[0].x, y+bottomPent[0].y, z+bottomPent[0].z);
 | 
					        vertex(bottomPent[0].x, bottomPent[0].y, bottomPent[0].z);
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      endShape(CLOSE);
 | 
					      endShape(CLOSE);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					@ -99,39 +95,39 @@ class Icosahedron extends PlatonicSolid {
 | 
				
			||||||
    for (int i=0; i<topPent.length; i++) {
 | 
					    for (int i=0; i<topPent.length; i++) {
 | 
				
			||||||
      if (i<topPent.length-2) {
 | 
					      if (i<topPent.length-2) {
 | 
				
			||||||
        beginShape();
 | 
					        beginShape();
 | 
				
			||||||
        vertex(x+topPent[i].x, y+topPent[i].y, z+topPent[i].z);
 | 
					        vertex(topPent[i].x, topPent[i].y, topPent[i].z);
 | 
				
			||||||
        vertex(x+bottomPent[i+1].x, y+bottomPent[i+1].y, z+bottomPent[i+1].z);
 | 
					        vertex(bottomPent[i+1].x, bottomPent[i+1].y, bottomPent[i+1].z);
 | 
				
			||||||
        vertex(x+bottomPent[i+2].x, y+bottomPent[i+2].y, z+bottomPent[i+2].z);
 | 
					        vertex(bottomPent[i+2].x, bottomPent[i+2].y, bottomPent[i+2].z);
 | 
				
			||||||
        endShape(CLOSE);
 | 
					        endShape(CLOSE);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        beginShape();
 | 
					        beginShape();
 | 
				
			||||||
        vertex(x+bottomPent[i+2].x, y+bottomPent[i+2].y, z+bottomPent[i+2].z);
 | 
					        vertex(bottomPent[i+2].x, bottomPent[i+2].y, bottomPent[i+2].z);
 | 
				
			||||||
        vertex(x+topPent[i].x, y+topPent[i].y, z+topPent[i].z);
 | 
					        vertex(topPent[i].x, topPent[i].y, topPent[i].z);
 | 
				
			||||||
        vertex(x+topPent[i+1].x, y+topPent[i+1].y, z+topPent[i+1].z);
 | 
					        vertex(topPent[i+1].x, topPent[i+1].y, topPent[i+1].z);
 | 
				
			||||||
        endShape(CLOSE);
 | 
					        endShape(CLOSE);
 | 
				
			||||||
      } else if (i==topPent.length-2) {
 | 
					      } else if (i==topPent.length-2) {
 | 
				
			||||||
        beginShape();
 | 
					        beginShape();
 | 
				
			||||||
        vertex(x+topPent[i].x, y+topPent[i].y, z+topPent[i].z);
 | 
					        vertex(topPent[i].x, topPent[i].y, topPent[i].z);
 | 
				
			||||||
        vertex(x+bottomPent[i+1].x, y+bottomPent[i+1].y, z+bottomPent[i+1].z);
 | 
					        vertex(bottomPent[i+1].x, bottomPent[i+1].y, bottomPent[i+1].z);
 | 
				
			||||||
        vertex(x+bottomPent[0].x, y+bottomPent[0].y, z+bottomPent[0].z);
 | 
					        vertex(bottomPent[0].x, bottomPent[0].y, bottomPent[0].z);
 | 
				
			||||||
        endShape(CLOSE);
 | 
					        endShape(CLOSE);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        beginShape();
 | 
					        beginShape();
 | 
				
			||||||
        vertex(x+bottomPent[0].x, y+bottomPent[0].y, z+bottomPent[0].z);
 | 
					        vertex(bottomPent[0].x, bottomPent[0].y, bottomPent[0].z);
 | 
				
			||||||
        vertex(x+topPent[i].x, y+topPent[i].y, z+topPent[i].z);
 | 
					        vertex(topPent[i].x, topPent[i].y, topPent[i].z);
 | 
				
			||||||
        vertex(x+topPent[i+1].x, y+topPent[i+1].y, z+topPent[i+1].z);
 | 
					        vertex(topPent[i+1].x, topPent[i+1].y, topPent[i+1].z);
 | 
				
			||||||
        endShape(CLOSE);
 | 
					        endShape(CLOSE);
 | 
				
			||||||
      } else if (i==topPent.length-1) {
 | 
					      } else if (i==topPent.length-1) {
 | 
				
			||||||
        beginShape();
 | 
					        beginShape();
 | 
				
			||||||
        vertex(x+topPent[i].x, y+topPent[i].y, z+topPent[i].z);
 | 
					        vertex(topPent[i].x, topPent[i].y, topPent[i].z);
 | 
				
			||||||
        vertex(x+bottomPent[0].x, y+bottomPent[0].y, z+bottomPent[0].z);
 | 
					        vertex(bottomPent[0].x, bottomPent[0].y, bottomPent[0].z);
 | 
				
			||||||
        vertex(x+bottomPent[1].x, y+bottomPent[1].y, z+bottomPent[1].z);
 | 
					        vertex(bottomPent[1].x, bottomPent[1].y, bottomPent[1].z);
 | 
				
			||||||
        endShape(CLOSE);
 | 
					        endShape(CLOSE);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        beginShape();
 | 
					        beginShape();
 | 
				
			||||||
        vertex(x+bottomPent[1].x, y+bottomPent[1].y, z+bottomPent[1].z);
 | 
					        vertex(bottomPent[1].x, bottomPent[1].y, bottomPent[1].z);
 | 
				
			||||||
        vertex(x+topPent[i].x, y+topPent[i].y, z+topPent[i].z);
 | 
					        vertex(topPent[i].x, topPent[i].y, topPent[i].z);
 | 
				
			||||||
        vertex(x+topPent[0].x, y+topPent[0].y, z+topPent[0].z);
 | 
					        vertex(topPent[0].x, topPent[0].y, topPent[0].z);
 | 
				
			||||||
        endShape(CLOSE);
 | 
					        endShape(CLOSE);
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					@ -142,7 +138,6 @@ class Icosahedron extends PlatonicSolid {
 | 
				
			||||||
class Tetrahedron extends PlatonicSolid {
 | 
					class Tetrahedron extends PlatonicSolid {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Tetrahedron
 | 
					  // Tetrahedron
 | 
				
			||||||
  float x, y, z;
 | 
					 | 
				
			||||||
  float radius;
 | 
					  float radius;
 | 
				
			||||||
  float a;
 | 
					  float a;
 | 
				
			||||||
  PVector[] vert = new PVector[4];
 | 
					  PVector[] vert = new PVector[4];
 | 
				
			||||||
| 
						 | 
					@ -268,11 +263,8 @@ class Octahedron extends PlatonicSolid {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class Dodecahedron extends PlatonicSolid {
 | 
					class Dodecahedron extends PlatonicSolid {
 | 
				
			||||||
 | 
					 | 
				
			||||||
  // Dodecahedron
 | 
					  // Dodecahedron
 | 
				
			||||||
  float x, y, z;
 | 
					 | 
				
			||||||
  float radius;
 | 
					  float radius;
 | 
				
			||||||
 | 
					 | 
				
			||||||
  float a, b, c;
 | 
					  float a, b, c;
 | 
				
			||||||
  PVector[] vert;
 | 
					  PVector[] vert;
 | 
				
			||||||
  int[][] faces;
 | 
					  int[][] faces;
 | 
				
			||||||
| 
						 | 
					@ -280,7 +272,6 @@ class Dodecahedron extends PlatonicSolid {
 | 
				
			||||||
  // constructor
 | 
					  // constructor
 | 
				
			||||||
  Dodecahedron(float radius) {
 | 
					  Dodecahedron(float radius) {
 | 
				
			||||||
    this.radius = radius;
 | 
					    this.radius = radius;
 | 
				
			||||||
 | 
					 | 
				
			||||||
    a = radius/1.618033989;
 | 
					    a = radius/1.618033989;
 | 
				
			||||||
    b = radius;
 | 
					    b = radius;
 | 
				
			||||||
    c = 0.618033989*a;
 | 
					    c = 0.618033989*a;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
										
											Plik binarny nie jest wyświetlany.
										
									
								
							| 
						 | 
					@ -0,0 +1,106 @@
 | 
				
			||||||
 | 
					class Icosahedron():
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def __init__(self, radius):
 | 
				
			||||||
 | 
					        topPent = [PVector()] * 5  # PVector[5]
 | 
				
			||||||
 | 
					        bottomPent = [PVector()] * 5  # PVector[5]
 | 
				
			||||||
 | 
					        angle = 0
 | 
				
			||||||
 | 
					        c = dist(cos(0) * radius,
 | 
				
			||||||
 | 
					                 sin(0) * radius,
 | 
				
			||||||
 | 
					                 cos(radians(72)) * radius,
 | 
				
			||||||
 | 
					                 sin(radians(72)) * radius)
 | 
				
			||||||
 | 
					        b = radius
 | 
				
			||||||
 | 
					        a = sqrt(((c * c) - (b * b)))
 | 
				
			||||||
 | 
					        triHt = sqrt((c * c) - ((c / 2) * (c / 2)))
 | 
				
			||||||
 | 
					        for i in range(5):
 | 
				
			||||||
 | 
					            topPent[i] = PVector(cos(angle) * radius,
 | 
				
			||||||
 | 
					                                 sin(angle) * radius,
 | 
				
			||||||
 | 
					                                 triHt / 2.0)
 | 
				
			||||||
 | 
					            angle += radians(72)
 | 
				
			||||||
 | 
					        topPoint = PVector(0, 0, triHt / 2.0 + a)
 | 
				
			||||||
 | 
					        angle = 72.0 / 2.0
 | 
				
			||||||
 | 
					        for i in range(5):
 | 
				
			||||||
 | 
					            bottomPent[i] = PVector(cos(angle) * radius,
 | 
				
			||||||
 | 
					                                    sin(angle) * radius,
 | 
				
			||||||
 | 
					                                    -triHt / 2.0)
 | 
				
			||||||
 | 
					            angle += radians(72)
 | 
				
			||||||
 | 
					        bottomPoint = PVector(0, 0, -(triHt / 2.0 + a))
 | 
				
			||||||
 | 
					        self.topPent, self.bottomPent = topPent, bottomPent
 | 
				
			||||||
 | 
					        self.topPoind, self.bottomPoint = topPoint, bottomPoint
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # draws icosahedron
 | 
				
			||||||
 | 
					    def create(self):
 | 
				
			||||||
 | 
					        topPent, bottomPent = self.topPent, self.bottomPent
 | 
				
			||||||
 | 
					        topPoint, bottomPoint = self.topPoind, self.bottomPoint
 | 
				
			||||||
 | 
					        for i in range(5):
 | 
				
			||||||
 | 
					            # icosahedron top
 | 
				
			||||||
 | 
					            beginShape()
 | 
				
			||||||
 | 
					            if (i < 5 - 1):
 | 
				
			||||||
 | 
					                vertex(topPent[i].x, topPent[i].y, topPent[i].z)
 | 
				
			||||||
 | 
					                vertex(topPoint.x, topPoint.y, topPoint.z)
 | 
				
			||||||
 | 
					                vertex(
 | 
				
			||||||
 | 
					                    topPent[i + 1].x, topPent[i + 1].y, topPent[i + 1].z)
 | 
				
			||||||
 | 
					            else:
 | 
				
			||||||
 | 
					                vertex(topPent[i].x, topPent[i].y, topPent[i].z)
 | 
				
			||||||
 | 
					                vertex(topPoint.x, topPoint.y, topPoint.z)
 | 
				
			||||||
 | 
					                vertex(topPent[0].x, topPent[0].y, topPent[0].z)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            endShape(CLOSE)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            # icosahedron bottom
 | 
				
			||||||
 | 
					            beginShape()
 | 
				
			||||||
 | 
					            if (i < len(bottomPent) - 1):
 | 
				
			||||||
 | 
					                vertex(bottomPent[i].x, bottomPent[i].y, bottomPent[i].z)
 | 
				
			||||||
 | 
					                vertex(bottomPoint.x, bottomPoint.y, bottomPoint.z)
 | 
				
			||||||
 | 
					                vertex(
 | 
				
			||||||
 | 
					                    bottomPent[i + 1].x, bottomPent[i + 1].y, bottomPent[i + 1].z)
 | 
				
			||||||
 | 
					            else:
 | 
				
			||||||
 | 
					                vertex(bottomPent[i].x, bottomPent[i].y, bottomPent[i].z)
 | 
				
			||||||
 | 
					                vertex(bottomPoint.x, bottomPoint.y, bottomPoint.z)
 | 
				
			||||||
 | 
					                vertex(bottomPent[0].x, bottomPent[0].y, bottomPent[0].z)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            endShape(CLOSE)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # icosahedron body
 | 
				
			||||||
 | 
					        for i in range(5):
 | 
				
			||||||
 | 
					            if i < 3:
 | 
				
			||||||
 | 
					                beginShape()
 | 
				
			||||||
 | 
					                vertex(topPent[i].x, topPent[i].y, topPent[i].z)
 | 
				
			||||||
 | 
					                vertex(
 | 
				
			||||||
 | 
					                    bottomPent[i + 1].x, bottomPent[i + 1].y, bottomPent[i + 1].z)
 | 
				
			||||||
 | 
					                vertex(
 | 
				
			||||||
 | 
					                    bottomPent[i + 2].x, bottomPent[i + 2].y, bottomPent[i + 2].z)
 | 
				
			||||||
 | 
					                endShape(CLOSE)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                beginShape()
 | 
				
			||||||
 | 
					                vertex(
 | 
				
			||||||
 | 
					                    bottomPent[i + 2].x, bottomPent[i + 2].y, bottomPent[i + 2].z)
 | 
				
			||||||
 | 
					                vertex(topPent[i].x, topPent[i].y, topPent[i].z)
 | 
				
			||||||
 | 
					                vertex(
 | 
				
			||||||
 | 
					                    topPent[i + 1].x, topPent[i + 1].y, topPent[i + 1].z)
 | 
				
			||||||
 | 
					                endShape(CLOSE)
 | 
				
			||||||
 | 
					            elif i == 3:
 | 
				
			||||||
 | 
					                beginShape()
 | 
				
			||||||
 | 
					                vertex(topPent[i].x, topPent[i].y, topPent[i].z)
 | 
				
			||||||
 | 
					                vertex(
 | 
				
			||||||
 | 
					                    bottomPent[i + 1].x, bottomPent[i + 1].y, bottomPent[i + 1].z)
 | 
				
			||||||
 | 
					                vertex(bottomPent[0].x, bottomPent[0].y, bottomPent[0].z)
 | 
				
			||||||
 | 
					                endShape(CLOSE)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                beginShape()
 | 
				
			||||||
 | 
					                vertex(bottomPent[0].x, bottomPent[0].y, bottomPent[0].z)
 | 
				
			||||||
 | 
					                vertex(topPent[i].x, topPent[i].y, topPent[i].z)
 | 
				
			||||||
 | 
					                vertex(
 | 
				
			||||||
 | 
					                    topPent[i + 1].x, topPent[i + 1].y, topPent[i + 1].z)
 | 
				
			||||||
 | 
					                endShape(CLOSE)
 | 
				
			||||||
 | 
					            elif i == 4:
 | 
				
			||||||
 | 
					                beginShape()
 | 
				
			||||||
 | 
					                vertex(topPent[i].x, topPent[i].y, topPent[i].z)
 | 
				
			||||||
 | 
					                vertex(bottomPent[0].x, bottomPent[0].y, bottomPent[0].z)
 | 
				
			||||||
 | 
					                vertex(bottomPent[1].x, bottomPent[1].y, bottomPent[1].z)
 | 
				
			||||||
 | 
					                endShape(CLOSE)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                beginShape()
 | 
				
			||||||
 | 
					                vertex(bottomPent[1].x, bottomPent[1].y, bottomPent[1].z)
 | 
				
			||||||
 | 
					                vertex(topPent[i].x, topPent[i].y, topPent[i].z)
 | 
				
			||||||
 | 
					                vertex(topPent[0].x, topPent[0].y, topPent[0].z)
 | 
				
			||||||
 | 
					                endShape(CLOSE)
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,42 @@
 | 
				
			||||||
 | 
					from PlatonicSolids import *
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					NUM_COLS, NUM_ROWS = 5, 5
 | 
				
			||||||
 | 
					NUM_CELLS = NUM_COLS * NUM_ROWS
 | 
				
			||||||
 | 
					solids = []
 | 
				
			||||||
 | 
					r_x = 0
 | 
				
			||||||
 | 
					r_y = 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def setup():
 | 
				
			||||||
 | 
					    global CELL_SIZE
 | 
				
			||||||
 | 
					    size(500, 500, P3D)
 | 
				
			||||||
 | 
					    CELL_SIZE = width / NUM_COLS
 | 
				
			||||||
 | 
					    strokeWeight(5)
 | 
				
			||||||
 | 
					    noFill()
 | 
				
			||||||
 | 
					    colorMode(HSB)
 | 
				
			||||||
 | 
					    for i in range(NUM_CELLS):
 | 
				
			||||||
 | 
					        s = Icosahedron(CELL_SIZE / 2.5)
 | 
				
			||||||
 | 
					        c = color(random(256), 200, 200, 128)  # random HSB translucent colors
 | 
				
			||||||
 | 
					        solids.append((s, c))  # (solid, color)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def draw():
 | 
				
			||||||
 | 
					    global r_x, r_y
 | 
				
			||||||
 | 
					    # translate(-width/2, -height/2) # may need to use with PeasyCam
 | 
				
			||||||
 | 
					    r_x += 0.02  # x rotation speed
 | 
				
			||||||
 | 
					    r_y += 0.01  # y rotation speed
 | 
				
			||||||
 | 
					    background(255)  # clear frame with white
 | 
				
			||||||
 | 
					    # lights() # use this with filled faces
 | 
				
			||||||
 | 
					    for i in range(NUM_CELLS):
 | 
				
			||||||
 | 
					        x, y = x_y_from_i(i, NUM_COLS, NUM_ROWS)
 | 
				
			||||||
 | 
					        cx, cy = CELL_SIZE / 2 + x * CELL_SIZE, CELL_SIZE / 2 + y * CELL_SIZE
 | 
				
			||||||
 | 
					        with pushMatrix():
 | 
				
			||||||
 | 
					            d = dist(mouseX, mouseY, cx, cy)
 | 
				
			||||||
 | 
					            translate(cx, cy)
 | 
				
			||||||
 | 
					            if d < 80:
 | 
				
			||||||
 | 
					                rotateX(r_y)
 | 
				
			||||||
 | 
					                rotateY(r_x)
 | 
				
			||||||
 | 
					            stroke(solids[i][1])
 | 
				
			||||||
 | 
					            solids[i][0].create()
 | 
				
			||||||
 | 
					    # if (frameCouNUM_CELLS < 200): saveFrame("###.tga")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def x_y_from_i(i, max_x, max_y):
 | 
				
			||||||
 | 
					    return i % max_x, (i / max_x) % max_y
 | 
				
			||||||
		Ładowanie…
	
		Reference in New Issue