# Drawing a new coordinate system (B) based on other known coordinate system (A) in opencv 4.0.0

Hello ,

I have :

1- Rotation vector and translation vector of coordinate system (A) relative to camera (using Solvepnp()) .

2- constant Rotation "matrix" and translation vector between two coordinate systems ( A and B ).

3- 3d Point of the origin (B) relative to camera and the Pixel of (B).

I want only to translate a coordinate system (point A) and rotate it about Axis Z to make a coordinate (B) . so after multiplying matrices i obtained rotation vector and translation vector of coordinate system (B) relative to camera.

but how can i draw this coordinate ?

I used (cv::projectPoints()) for Drawing this coordinate (B) but the result was strange (see please in 2. image).

can you show, what you tried ? (code)

the coord system in the drawing seems to be wrong (x-axis pointing into the wrong direction)

From

`solvePnP`

you have the following transformation:`P_cam = T_A2cam x P_A`

.If you have the fixed transformation between A and B:

`P_A = T_B2A x P_B`

, to draw the frame B you will have to update the rotation matrix and the translation vector with the following:`P_cam = T_A2cam x T_B2A x P_B`

. With`P_cam`

, you just have to project to the camera image plane using the intrinsic parameters.hello @MedoCV i was playing around and trying to implement something similar.. i get also some issues when i start rotating, i can just rotate upon the 'Z' axis.. on the other axis i get a bad projection, using null translation vector, identity matrix as cameraMatrix and no distortions coefficients..maybe some missing step?, could you post what you are trying?. I created a gist with my procedure.. https://gist.github.com/richipower/9c...