I am in the debug menu for cameras in Sketchup and I understand the “Eye” values but can’t wrap my head around “Dir” and “Up.”
Also, how would I go about converting XYZ rotation values to these values?
I am in the debug menu for cameras in Sketchup and I understand the “Eye” values but can’t wrap my head around “Dir” and “Up.”
Also, how would I go about converting XYZ rotation values to these values?
Dir is the vector along which the axis of the camera is pointing. Up is the vector that defines the y axis of the camera plane, which usually is toward the top of the view window.
hmmm… so if I wanted rotate my camera with XYZ rotation (for example X:120d, Y:0d, Z:-90d) how would I go about this?
I’m not where I can try it, but I think you would need to transform the vectors, create a new camera using them, and assign it to the view.
That Camera panel is strictly a Windows thing, is it not? You use a ruby command to get it?
There is advanced camera tools, which allows you various setting and even manual manipulation of geometry cameras.
I have advanced camera tools, but always struggled with it.
I’m no expert with it either, but I do know you can physically move the camera around and the scenes will respect that.
I don’t know if this is something you would know but I found this. Know if this works?
def xyz_to_dir_up(x, y, z)
x_rad = x * Math::PI / 180
y_rad = y * Math::PI / 180
z_rad = z * Math::PI / 180
transform = Geom::Transformation.rotation(ORIGIN, Z_AXIS, z_rad) *
Geom::Transformation.rotation(ORIGIN, Y_AXIS, y_rad) *
Geom::Transformation.rotation(ORIGIN, X_AXIS, x_rad)
dir = transform * Z_AXIS
up = transform * Y_AXIS
[dir, up]
end
The values shown are normalized vectors. The DIR vector is the direction the camera is aiming. If you have a line pointing to where you want the camera to point, construct a box around the line using it as a diagonal and then calculate the X, Y, and Z vector components.
If you want the camera upright, just specify 0,0,1 as the values for UP (i.e., Z_AXIS).
[NOTE: The SQRT(X^2 + Y^2 + Z^2) is the length of the diagonal]
If you make your line 1 unit long, you can read the other values directly: