Skapa en Robotics simulator med bearbetning (5 / 7 steg)
Steg 5: Roterande/Aligning flera delar
Nu kommer vi att församlingen roboten genom att lägga till övriga delar. Använda funktionerna Översätt/rotera för att placera delarna. Översättning och rotation värden kommer att alltid lägga. Det betyder att alla delar i en kedja där varje länk är flyttade relativt till sin föregångare. Om du använder din egen robotdelar du kan hitta rätt översättning värden i cad-filen. Om basen är 60mm hög måste du översätta de nästa del 60 enheterna och så vidare. Tar ibland det några försök att hitta rätta rotation värden är i radianer. Genom att definiera tre rotation värden som variabler kommer vi att kunna flytta lederna i nästa steg. Om du exporterar dina obj-filer från ett CAD-program blir det en andra mtl-fil som innehåller färginställningar och bearbetning kommer att göra det så. Om inte, disableStyle() kan användas för att rendera objekt med inställningen standard fyllningen/linjen.
PShape bas, axel, upArm, loArm, slutet;
float rotX, rotY;
float alpha = -1, beta = -2, gamma;
void setup() {
storlek (1200, 800, OPENGL);
bas = loadShape("r5.obj");
Axel = loadShape("r1.obj");
upArm = loadShape("r2.obj");
loArm = loadShape("r3.obj");
slut = 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);
Översätt (0, 4, 0);
rotateY(gamma);
Shape(Shoulder);
Översätt (0, 25, 0);
rotateY(PI);
rotateX(alpha);
Shape(upArm);
Översätt (0, 0, 50);
rotateY(PI);
rotateX(beta);
Shape(loArm);
Översätt (0, 0, -50);
rotateY(PI);
Shape(End);
}
void mouseDragged() {
rotY-= (mouseX - pmouseX) * 0,01;
rotX-= (mouseY - pmouseY) * 0,01;
}