Applying this correction, you can also see that they are now both a distance of 0.5 away from the corresponding edges of the area at 0 and 640, making the whole thing symmetrical. The centers of these two, after applying the 0.5 offset, are 0.5 and 639.5. To precisely transform this into the OpenGL coordinate space, you can simply apply a 0.5 offset to your input value, moving the value from the edge to the center of the pixel.įor example, the left most pixel would have x-coordinate 0, the right most 639. But what you most likely want is the center of the pixel. If you simply apply the scaling based on the window size, the resulting OpenGL coordinate would map to the left/bottom edge of the pixel. One subtle detail to take into account is that, when you get a given position from your mouse input, these will be the integer coordinates of the pixels. The division needs to be by the number of pixels in each coordinate direction, because you do have 640/480 pixels within the coordinate range. Since vectors represent directions, the origin of the vector does not change its value.The answer given by might get you close enough for what you need, but the calculations are not really correct. Because it is more intuitive to display vectors in 2D (rather than 3D) you can think of the 2D vectors as 3D vectors with a z coordinate of 0. If a vector has 2 dimensions it represents a direction on a plane (think of 2D graphs) and when it has 3 dimensions it can represent any direction in a 3D world.īelow you'll see 3 vectors where each vector is represented with (x,y) as arrows in a 2D graph. Vectors can have any dimension, but we usually work with dimensions of 2 to 4. The directions for the treasure map thus contains 3 vectors. You can think of vectors like directions on a treasure map: 'go left 10 steps, now go north 3 steps and go right 5 steps' here 'left' is the direction and '10 steps' is the magnitude of the vector. A vector has a direction and a magnitude (also known as its strength or length). In its most basic definition, vectors are directions and nothing more. If the subjects are difficult, try to understand them as much as you can and come back to this chapter later to review the concepts whenever you need them. The focus of this chapter is to give you a basic mathematical background in topics we will require later on. However, to fully understand transformations we first have to delve a bit deeper into vectors before discussing matrices. When discussing matrices, we'll have to make a small dive into some mathematics and for the more mathematically inclined readers I'll post additional resources for further reading. Matrices are very powerful mathematical constructs that seem scary at first, but once you'll grow accustomed to them they'll prove extremely useful. This doesn't mean we're going to talk about Kung Fu and a large digital artificial world. There are much better ways to transform an object and that's by using (multiple) matrix objects. We could try and make them move by changing their vertices and re-configuring their buffers each frame, but that's cumbersome and costs quite some processing power. We now know how to create objects, color them and/or give them a detailed appearance using textures, but they're still not that interesting since they're all static objects. Transformations Getting-started/Transformations
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |