Ich habe eine große Kugel. Es gibt einen roten Punkt, der sich um die Kugel bewegt. Ich möchte diesem roten Punkt folgen, während er sich in die Kugel bewegt. Also muss sich meine Kamera mit dem roten Punkt bewegen. Aber es gibt ein Problem. Gerade jetzt, was ich erlebe, was in Exponat B. gezeigt ich meine Animation der Sicht gezeigt in Ausstellung A.P3D Kameraausrichtung
Hier ist der Code, den ich bisher müssen erkennen wollen. Ich denke, es ist ziemlich einfach. Ich habe 3 Variablen, die steuern, wo mein Auge ist, und ich habe 3 Variablen, die steuern, wo das Ziel ist. Der rote Punkt befindet sich ebenfalls an der Zielposition. Ich habe zwei Flugzeuge in x-y hinzugefügt, was mir geholfen hat, nicht zu verwirrt zu werden, während sich das Ding drehte. Hier
ist eine Geige:
https://jsfiddle.net/da8nza6y/
float radius = 1000;
float view_elevation = 1500;
float target_elevation = 300;
float x_eye;
float y_eye;
float z_eye;
float x_aim;
float y_aim;
float z_aim;
float h;
float theta;
void setup() {
size(600, 600, P3D);
theta = 0;
h = 30;
}
void draw() {
theta += 0.5;
theta = theta%360;
x_eye = (radius+view_elevation)*cos(theta*PI/180);
y_eye = 0;
z_eye = (radius+view_elevation)*sin(theta*PI/180);
x_aim = (radius+target_elevation)*cos((theta+h)*PI/180);
y_aim = 0;
z_aim = (radius+target_elevation)*sin((theta+h)*PI/180);
camera(x_eye, y_eye, z_eye, x_aim, y_aim, z_aim, 0, 0, -1);
background(255);
// the red dot
pushMatrix();
translate(x_aim, y_aim, z_aim);
fill(255, 0, 0, 120);
noStroke();
sphere(10);
popMatrix();
// the big sphere
noStroke();
fill(205, 230, 255);
lights();
sphere(radius);
// the orange plane
pushMatrix();
translate(0, 0, 10);
fill(255, 180, 0, 120);
rect(-2000, -2000, 4000, 4000);
popMatrix();
// the green plane
pushMatrix();
translate(0, 0, -10);
fill(0, 180, 0, 120);
rect(-2000, -2000, 4000, 4000);
popMatrix();
}
So ist die Gurke ist, dass es wie vor (deren Lage in der XZ-Ebene auf den roten Punkt scheint durch den Winkel (Theta + gegeben h) und distanz (radius + target_elevation) vom Ursprung) kreuzt die xy-Ebene, alles wird umgedreht und rückwärts umgedreht.
Jetzt habe ich versucht, die letzten 3 Variablen in der camera()
Funktion zu steuern, aber ich bin verwirrt. Die Dokumentation für die Funktion ist hier:
https://processing.org/reference/camera_.html
Kann mir jemand eine Lösung für dieses Problem sehen?
Auch ich bin mir sicher, dass ich nur die Kugel drehen könnte (was ich tun kann) und diese Probleme nicht habe, aber ich bin sicher, wohin ich mit dieser Animation gehe und ich habe das Gefühl, dass es Dinge geben wird komm, das wird mit dieser Methode einfacher. Obwohl ich mich irren könnte.
Sie sollten [akzeptieren diese Antwort] (https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer- arbeiten), so dass diese Frage nicht als eine Antwort –
Ich werde das tun. Wenn ich auf "Akzeptieren" klicke, bekomme ich eine Aufforderung, dass ich zwei Tage warten muss, bis ich meine Antwort auf meinen eigenen Beitrag angenommen habe. – Jozurcrunch