Skip to content
Snippets Groups Projects

CC-NC-BY Jiyoung Moon

Mouse dragging to transform camera

2020-1, Computer Graphics (F030-1, Prof. Hwanyong Lee)
201721097 media Jiyoung Moon

This is the content that teaching how to transform camera using mouse dragging.

Before we start this tutorial, students should prepare the basic code of self rotating 3d cube.
The example of the first code will be shown the first part.

The whole tutorial will be followed by some codes that changed by each steps.
Every steps has the codes of it, output result, and some gif files that help students to understand it well.
There are 3 steps in this tutorial.

Step 0. Before we start! You have to prepare...

In this part, I'll show a example code of self-rotating 3d cube and a example output of it.
self-rotating-cube
This code is used for the next steps.

Step 1. Remove some codes.

In this part, we remove some codes related to self rotation.

Step 2. Use new variable.

In this part, we make new variables so that we can prepare for mouse dragging.
With some gif files and code, students can understand it easily.

Step 3. Add some codes so that the mouse can drag the cube!

In this part, we make the codes for the mouse dragging.
This is related to the addEventListener of HTML DOM event and JS.
We make 3 functions with describtion of them.
Also, in this part, there are some parts that could be hard to understand, so I add a gif so that the students can understand it well.
description

Step 4. It's done!!! Try it!!!

At the end, the students can make his/her own mouse dragging tranformation of camera.
Also, the students can try mouse dragging to transform camera.

Result

The final result of this WebGL tutorial will be like this.
final

References

https://www.w3schools.com/jsref/met_document_addeventlistener.asp
https://www.tutorialspoint.com/webgl/webgl_interactive_cube.htm
https://eng.libretexts.org/Bookshelves/Computer_Science/Book%3A_Introduction_to_Computer_Graphics_(Eck)/07%3A_3D_Graphics_with_WebGL/7.01%3A_Transformations_in_3D
https://www.w3schools.com/js/js_htmldom_html.asp
https://www.w3schools.com/tags/tag_code.asp
https://www.w3schools.com/JSREF/obj_mouseevent.asp
https://www.w3schools.com/jsref/event_onmousedown.asp
https://www.w3schools.com/jsref/event_onmousemove.asp
https://www.w3schools.com/jsref/event_onmouseout.asp
https://www.w3schools.com/jsref/event_onmouseup.asp