
Im folgenden Beispiel können Sie sehen, dass das Atom, das der Kamera am nächsten ist, tatsächlich kleiner ist als der Rest, obwohl es andersherum sein sollte. Oder nicht?
Hier die MWE:
size(700);
import solids;
import texcolors;
import three;
currentprojection=orthographic (
camera=(8,4,4),
up=(0,0,1),
target=(2,2,2),
zoom=1.0
);
// save predefined 2D orientation vectors
pair NN=N;
pair SS=S;
pair EE=E;
pair WW=W;
//%Atom positions
triple Atom1 = (-1.1547, -2., 3.26599);
triple Atom2 = (-1.1547, 2., 3.26599);
triple Atom3 = (2.3094, 0., 3.26599);
triple Atom4 = (0,0,0);
triple[] atoms={
Atom1,Atom2,Atom3,Atom4,
};
draw((1.3094,0,2.26599)--(3.3094,0,4.26599),(7bp)+green,Arrow3(size=30bp));
real cylR=0.062;
material baseM = material(gray(0.5), black, gray(0.6), black);
void Connect(guide3 g){
draw(surface(
cylinder(
point(g,0),cylR,arclength(g),point(g,1)-point(g,0)
)),baseM
);
}
//%connections from Atom1 to all others
Connect(Atom1--Atom2);
Connect(Atom1--Atom3);
Connect(Atom1--Atom4);
//%connections from Atom2 to Atom2+n
Connect(Atom2--Atom3);
Connect(Atom2--Atom4);
//%connections from Atom3 to Atom4
Connect(Atom3--Atom4);
material m = material(gray(0.5), black, RoyalBlue, black);
// material m2 = material(
void drawSpheres(triple[] C, real R, pen p=currentpen){
for(int i=0;i<C.length;++i){
draw(surface(sphere(C[i],R)),m);
}
}
drawSpheres(atoms,0.5,RoyalBlue);
Antwort1
Sie sind eigentlich gleich groß. Das nähere Objekt sieht aufgrund einer optischen Täuschung kleiner aus. Ihr Gehirn „nimmt an“, dass es kleiner ist, weil es näher ist, aber es nimmt in Ihrem Sichtfeld den gleichen Winkel ein.
Ersetzen Sie „orthographisch“ durch „perspektivisch“, um das nähere Bild größer zu machen.