Stap 5: Roterende/uitlijnen meerdere onderdelen
Nu zullen we vergadering de robot door de resterende onderdelen toe te voegen. Gebruik de functies vertalen/draaien om te plaatsen het delen. Omzetting en -rotatie waarden zal altijd kloppen. Dat betekent dat alle onderdelen in een keten waar elke koppeling relatief wordt verplaatst naar zijn voorganger. Als u uw eigen robot onderdelen kunt u de waarden van de juiste vertaling in het CAD-bestand gebruikt. Als de base 60mm hoge is hebt om te vertalen van het volgende deel 60 eenheden, enzovoort. Rotatiewaarden zijn in radialen en soms duurt het een paar pogingen om te vinden van de juiste zijn. Door drie rotatiewaarden definiëren als variabelen zullen we kunnen bewegen van de gewrichten in de volgende stap. Als u uw obj-bestanden vanuit een CAD-software exporteert zal er een tweede mtl-bestand met de kleurinstellingen en verwerking zal maken het op die manier. Als dat niet het geval is, disableStyle() kan worden gebruikt voor het maken van objecten met de instelling standaard vulling/lijn.
PShape base, shoulder, upArm, loArm, end; float rotX, rotY; float alpha = -1, beta = -2, gamma; void setup(){ size(1200, 800, OPENGL); base = loadShape("r5.obj"); shoulder = loadShape("r1.obj"); upArm = loadShape("r2.obj"); loArm = loadShape("r3.obj"); end = loadShape("r4.obj"); shoulder.disableStyle(); upArm.disableStyle(); loArm.disableStyle(); } void draw(){ background(32); smooth(); lights(); fill(#FFE308); noStroke(); translate(width/2,height/2); scale(-4); translate(0,-40,0); rotateX(rotX); rotateY(-rotY); shape(base); translate(0, 4, 0); rotateY(gamma); shape(shoulder); translate(0, 25, 0); rotateY(PI); rotateX(alpha); shape(upArm); translate(0, 0, 50); rotateY(PI); rotateX(beta); shape(loArm); translate(0, 0, -50); rotateY(PI); shape(end); } void mouseDragged(){ rotY -= (mouseX - pmouseX) * 0.01; rotX -= (mouseY - pmouseY) * 0.01; }