You have a camera at the basic position (point [0, 0, 0]) headed straight in the direction of an axis (say z). There is an object with real coordinates (input parameter [x_r, y_r, z_r]) with image coordinates (also possible input [x_m, y_m], see Technical analysis below). The director is not happy with the view of the object in the image and give you instructions to move or rotate the camera (this is covered by the input list of instructions). You should reject the instructions that would lead to getting the camera behind the object (you can only shoot in the front of the camera) or projecting the object outside the image (image size would be fixed or another input parameter). The output of the function is the final object image coordinates.
Input: 4 arguments: Image Size, Spatial Coordinates, Image Coordinates, Instructions. should be explaind with a bit more details.
Output: Final coordinates.
move_camera( [640, 480], [-300.0, 200.0, 3000.0], [20, 440], [['x', 180], ] ) == [20, 440] move_camera( [640, 480], [-300.0, 200.0, 3000.0], [20, 440], [['z', 360], [0, 0, -1000]] ) == [95, 390]
Precondition: Constraints for Input
CheckiO Extensions allow you to use local files to solve missions. More info in a blog post.
In order to install CheckiO client you'll need installed Python (version at least 3.8)
Install CheckiO Client first:
pip3 install checkio_client
Configure your tool
checkio --domain=py config --key=
Sync solutions into your local folder
(in beta testing) Launch local server so your browser can use it and sync solution between local file end extension on the fly. (doesn't work for safari)
checkio serv -d
Alternatevly, you can install Chrome extension or FF addon
checkio install-plugin --ff
checkio install-plugin --chromium