Wrong Obj.max.x values in camera Coordsys ( Matrix3)

Hi all,

I am trying to measure an object's delta x and delta y values relative to my camera's coordsys but am getting incorrect values for both obj.max.x and obj.min.x

In this little script I am assigning the camera's (camera001's) transform.rotationpart matrix to a variable named c_rot (stands for camera rotation).

I then try measuring the obj.max.x and min.x values in this coordsys.
the delta_x value should be 100 as the box's width, height and length are all 100.

I get the following output from the listener after running the script:

"
C_rot = (matrix3 [0.579717,-0.814818,0] [0.515249,0.366583,0.774684] [-0.631226,-0.449097,0.632349] [0,0,0])
max_x = -16.3928
min_x = 16.3928
delta_x = 32.7856
OK

"

I will be using this for a zoom function in a render script I am working on, should anyone be interested I'd be happy to explain more.

Any help would be greatly appreciated, thank you! :D\

(--start of script scope
 
if (yesnocancelbox "do you want to reset the scene? \n after reset a box and cam will be created and box size \n (in cam coordsys) will be measured" == #yes) do (resetmaxfile #noprompt )
 
	--declaring initial variables
local c_rot =0, max_x=0, min_x=0
 
	--Create a Targetcamera                                                                             
		--	(I copied the orientation/position from the target cam in my scene)
		tcam = targetcamera()
		tcam.transform = (matrix3 [0.579717,-0.814818,0] [0.515249,0.366583,0.774684] [-0.631226,-0.449097,0.632349] [0,0,0]) 
		tcam.pos =  [ -197.464, -140.085, 197.174 ]
 
		--Assign camera's transform.rotationpart to 'c_rot' variable
			c_rot = tcam.transform.rotationpart as matrix3
			format "C_rot = % \n" c_rot
 
			--create box (which will be measured by script)
				box1 = box length:100 width:100 height:100 --create box 
				box1.pivot = box1.center --center box's pivot
				box1.transform = c_rot --align box to camera
 
	in coordsys c_rot (
 
		max_x = box1.max.x --measure obj.max.x
		min_x = box1.min.x --measure obj.min.x
		delta_x =abs ( (-1* min_x) + max_x ) --calculate delta_x
		format "max_x =  % \n min_x = % \n delta_x = % \n" max_x min_x delta_x --print result (check listener/forum post)
 
	)--end in coordsys c_rot do
 
)--end of script scope
AttachmentSize
measure_obj_in_cam_coordsys_test_script.ms1.35 KB

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
Maarten's picture

Yes, still no clue

Not sure what is causing the weird measurement values in the coordsys, does indeed look like it should be a simple error. Am trying to work around it now but would still like to know what went wrong in the original code.
-Maarten

TsveTan's picture

Still unsolved?

It looks very simple...

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.