From: Bruce S. <Bru...@nc...> - 2010-02-03 21:53:43
|
Could you describe briefly what it is that you want to do? Bruce Sherwood Craig Berry wrote: > Okay, I stayed up way too late last night (er, this morning) > experimenting with vpython camera view-distance control, and have come > to the following conclusions (all relative to a scene containing a > fixed set of static objects): > > 1. There are two fundamental parameters involved: > eyeDistance = mag(scene.mouse.camera - scene.center) > range = scene.range > > 2. eyeDistance can only be changed via user zooming, using > mouse-middle dragging. Nothing the program does directly ever changes > it. > > 3. range can only be changed by the program. Nothing the user does > ever changes it. > > This seems wildly counterintuitive, and I wasted a lot of time trying > to violate point 2 or 3. But all this seems quite solid. > > So, as in your movecamera.py example, the only way to move the eye to > a known apparent viewpoint following user-induced changes to > eyeDistance is to change range proportionately, so that the two change > cancel out. > > Is that a fair summary? Or am I missing something? And if any > vpython developers are listening, why isn't there a programmatic way > to change eyeDistance directly, as for other camera parameters like > "forward"? > > |