xxxxxxxxxx
338
/*A wooden, 3d model of a dinosaur skeleton. Each piece was made of an unfinished, light colored wood, came apart from one another, and were about half an inch (1.25cm) thick. The model was made to scale, about 3 feet (91cm) tall, 5 feet (152cm) long, and 1.5 feet (45cm) wide. The skull of the dinosaur had large, sharp looking teeth that hooked back a little an long snout, large talons on its big toes, smaller claws on its hands, and a fairly long tail for its size.*/
function setup() {
createCanvas(400, 400);
}
function draw() {
background(34,77,73);
fill(255, 248, 200);
noStroke();
angleMode(DEGREES);
translate(-40, -30)
//ground
push();
fill(204,104,14);
rect(00,290,500,400);
pop();
//back arms
push();
fill(245, 238, 180);
translate(160, 130);
rotate(-1);
rect(0, 0, 8, 55);
pop();
push();
fill(245, 238, 200)
translate(120, 155);
rotate(25);
rect(0, 0, 50, 8);
pop();
//front teeth
push();
fill(220, 220, 220)
rotate(-5)
triangle(44, 90, 60, 120, 60, 75);
pop();
//rest of teeth
//teeth
push();
fill(180, 180, 180)
translate(25, 20);
triangle(45, 75, 50, 90, 50, 75);
translate(6, -2);
triangle(45, 75, 50, 90, 50, 75);
translate(6, -2);
triangle(45, 75, 50, 90, 50, 75);
translate(6, -2);
triangle(45, 75, 50, 90, 50, 75);
translate(6, -2);
triangle(45, 75, 50, 90, 50, 75);
translate(6, -2);
triangle(45, 75, 50, 90, 50, 75);
translate(6, -2);
triangle(45, 75, 50, 90, 50, 75);
translate(6, -2);
triangle(45, 75, 50, 90, 50, 75);
pop();
// head
push();
translate(50, 70);
rotate(-7);
rect(35, -7, 38, 35, 10);
rect(0, 0, 80, 30, 10);
pop();
push();
fill(225, 218, 180);
rotate(-15);
translate(-15, 70);
triangle(45, 75, 50, 55, 50, 75);
translate(05, 2);
triangle(45, 75, 50, 55, 50, 75);
translate(05, 0);
triangle(45, 75, 50, 55, 50, 75);
translate(05, 02);
triangle(45, 75, 50, 55, 50, 75);
translate(05, -1);
triangle(45, 75, 50, 55, 50, 75);
translate(05, -2);
triangle(45, 75, 50, 55, 50, 75);
translate(05, -2);
triangle(45, 75, 50, 55, 50, 75);
translate(05, -1);
triangle(45, 75, 50, 55, 50, 75);
pop();
// Lower jaw
quad(120, 100, 65, 130, 70, 135, 130, 120);
//jaw connect
push();
translate(50, 70);
rotate(75);
rect(20, -78, 50, 20, 10);
pop();
//eyes
push();
fill(34,77,73);
ellipse(109, 74, 10, 20);
ellipse(114, 78, 10, 20);
fill(34,77,73);
triangle(75, 85, 100, 70, 95, 85);
pop();
push();
translate(50, 70);
rotate(68);
rect(50, -83, 3, 10);
rect(45, -83, 3, 10);
rect(40, -80, 3, 10);
rect(35, -80, 3, 10);
rect(30, -79, 3, 10);
rect(60, -85, 3, 30);
rect(65, -85, 3, 30);
rect(70, -85, 3, 30);
rect(55, -85, 3, 30);
rect(75, -85, 3, 30);
rect(80, -85, 3, 30);
rect(85, -85, 3, 30);
rect(90, -89, 3, 30);
//rect(100, -89, 3, 35);
pop();
push();
translate(165, 120);
rotate(60);
rect(10, 0, 4, 30);
rect(20, 0, 4, 30);
pop();
//neck
push();
translate(90, 70);
rotate(60);
rect(25, -35, 80, 20, 110);
pop();
//spine bone long
push();
fill(225, 218, 180)
translate(320, 160);
rotate(100);
rect(0, 0, 20, 170, 10)
pop();
push();
translate(50, 190);
rotate(10);
rect(100, -86, 4, 35);
rect(110, -83, 4, 35);
rect(120, -83, 4, 50);
rect(130, -83, 4, 60);
rect(140, -83, 5, 70);
rect(150, -83, 6, 75);
rect(160, -83, 6, 75);
rect(170, -83, 6, 75);
rect(180, -83, 6, 70);
rect(190, -83, 6, 65);
rect(200, -83, 6, 55);
rect(210, -83, 4, 40);
rect(220, -83, 3, 35);
rect(230, -83, 3, 30);
rect(240, -83, 3, 30);
pop();
push()
blendMode(DIFFERENCE);
rotate(38);
rect(340, -50, 15, 80, 90);
rotate(-58)
rect(155, 314, 10, 50, 90);
pop()
//hips
push();
translate(290, 145);
rect(0, 0, 5, 20);
rotate(25);
rect(0, 0, 55, 40, 15);
pop();
push();
rotate(35);
rect(330, -55, 5, 20);
rect(340, -60, 5, 20);
rect(350, -60, 5, 20);
rect(360, -60, 5, 20);
rect(370, -55, 5, 20);
pop();
//tail
push();
strokeWeight(7); // Default
line(20, 20, 80, 20);
strokeCap(ROUND);
translate(290, 70);
noFill()
stroke(255, 248, 200);
bezier(0, 290, 290, 250, 10, 110, 20, 90);
pop();
push();
translate(200, 200)
rotate(30);
rect(110, -86, 7, 20);
rect(120, -85, 7, 20);
rect(130, -84, 7, 20);
rect(140, -83, 7, 20);
rect(150, -82, 7, 20);
rect(160, -80, 7, 20);
rect(170, -79, 7, 20);
rect(180, -76, 7, 20);
rect(190, -72, 5, 20);
rotate(5);
rect(190, -85, 6, 20);
rect(200, -84, 6, 20);
rect(210, -80, 6, 20);
rect(220, -73, 6, 20);
rect(230, -64, 6, 15);
rotate(100);
rect(-80, -240, 5, 20);
rect(-70, -242, 5, 20);
rect(-60, -242, 5, 20);
rect(-50, -242, 5, 20);
rect(-40, -238, 5, 20);
rect(-30, -235, 5, 20);
rect(-20, -230, 5, 20);
rect(-10, -225, 5, 20);
rect(0, -218, 5, 18);
rect(10, -212, 4, 18);
rect(20, -205, 4, 18);
rect(30, -200, 4, 18);
rect(40, -190, 3, 14);
rotate(5);
rect(-110, -228, 5, 25);
pop();
push();
rotate(-20);
ellipse(75, 145, 40, 28);
pop();
//front arms
push();
translate(165, 150);
rotate(-18);
rect(0, 0, 10, 55);
pop();
push();
fill(275, 238, 200)
translate(140, 190);
rotate(7);
rect(-10, 2, 63, 8);
//talons
strokeWeight(3);
stroke(255, 248, 200);
noFill();
arc(-20, 8, 20, 20, 180, 360);
arc(-15, 9, 20, 20, 220, 360);
arc(-10, 7, 20, 20, 220, 360);
arc(-35, -25, 20, 20, 180, 360);
arc(-30, -25, 20, 20, 220, 360);
arc(-25, -25, 20, 20, 220, 360);
arc(115, 85, 30, 30, 200, 330);
arc(110, 85, 30, 30, 200, 330);
arc(120, 87, 30, 30, 200, 320);
pop();
//thighs
push()
rotate(38);
rect(350, -50, 15, 80, 90);
rotate(-58)
rect(165, 314, 10, 50, 90);
pop()
//talons
push();
rotate(3)
rect(265, 265, 30, 7, 20);
pop();
}