{"id":934,"date":"2018-12-24T10:51:58","date_gmt":"2018-12-24T01:51:58","guid":{"rendered":"https:\/\/www.charlezz.com\/?p=934"},"modified":"2019-12-21T17:26:37","modified_gmt":"2019-12-21T08:26:37","slug":"opengl-7-matrix%ed%96%89%eb%a0%ac","status":"publish","type":"post","link":"https:\/\/charlezz.com\/?p=934","title":{"rendered":"[OpenGL] 7. Matrix(\ud589\ub82c)"},"content":{"rendered":"<h1>\ub9e4\ud2b8\ub9ad\uc2a4\uc758 \uc138\uacc4\ub85c&#8230;<\/h1>\n<p>\uc9c0\uae08\uae4c\uc9c0\ub294 \uc810 , \uc120, \uc0bc\uac01\ud615 \ub610\ub294 \uc0bc\uac01\ud615 \uacb0\ud569\uc744 \ud1b5\ud55c \ub2e4\uac01\ud615\uc744 \uadf8\ub9ac\ub294 \ubc29\ubc95\uc5d0 \ub300\ud574\uc11c \uc54c\uc544\ubcf4\uc558\uc2b5\ub2c8\ub2e4.<br \/>\n\ud558\uc9c0\ub9cc \uc774\ub294 \ud3c9\uba74\uc0c1\uc758 2D\uadf8\ub798\ud53d\uc774\uc9c0 3D\ub294 \uc544\ub2c8\uc600\uc2b5\ub2c8\ub2e4. \ub610\ud55c \uc815\uc0ac\uac01\ud615\uc774 \ub098\uc624\uae38 \uae30\ub300\ud588\uc73c\ub098 \uc9c1\uc0ac\uac01\ud615\uc73c\ub85c \ub098\ud0c0\ub098\ub294 \uac83\uc744 \ubcfc \uc218 \uc788\uc5c8\uc2b5\ub2c8\ub2e4. \uc0ac\uc2e4 \ucf54\ub4dc\ub85c \uc815\uc0ac\uac01\ud615\uc73c\ub85c \ud45c\ud604\ud558\ub294 \ubc29\ubc95\uc740 \ub9e4\uc6b0 \uac04\ub2e8\ud558\uc9c0\ub9cc, \uc774\ud574\ud558\uae30\ub294 \uc27d\uc9c0\uac00 \uc54a\uae30 \ub54c\ubb38\uc5d0 \uc774\uc804 \ud3ec\uc2a4\ud2b8\uc5d0\uc11c\ub294 \ub2e4\ub8e8\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4. \uadf8\ub798\uc11c \uc774\ubc88\uc7a5\uc5d0\ub294 \ubbf8\ub8e8\uace0 \ubbf8\ub904\uc654\ub358 \ub9e4\ud2b8\ub9ad\uc2a4\uc5d0 \ub300\ud574\uc11c \uc54c\uc544\ubcf4\uace0\uc790 \ud569\ub2c8\ub2e4.<\/p>\n<p><span style=\"font-size: 37px;\">\ub9e4\ud2b8\ub9ad\uc2a4\ub780(\ud589\ub82c)?<\/span><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.charlezz.com\/wordpress\/wp-content\/uploads\/2018\/12\/matrix-300x272.png\" alt=\"\" width=\"300\" height=\"272\" class=\"aligncenter wp-image-947 size-medium\" srcset=\"https:\/\/charlezz.com\/wordpress\/wp-content\/uploads\/2018\/12\/matrix-300x272.png 300w, https:\/\/charlezz.com\/wordpress\/wp-content\/uploads\/2018\/12\/matrix.png 570w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>\uc218\ud559\uc5d0\uc11c \uc218\ub098 \uae30\ud638, \uc218\uc2dd \ub4f1\uc744 \ub124\ubaa8\uaf34\ub85c \ubc30\uc5f4\ud55c \uac83\uc785\ub2c8\ub2e4.<br \/>\n\ud589\ub82c\uc740 \ubb3c\ub9ac\ud559\uc5d0\uc11c \uc804\uae30\ud68c\ub85c, \uc591\uc790 \uc5ed\ud559 \ub4f1\uc5d0\uc11c \uc4f0\uc774\uace0, \ucef4\ud4e8\ud130 \uadf8\ub798\ud53d\uc2a4\uc5d0\uc11c 3\ucc28\uc6d0 \uc774\ubbf8\uc9c0\ub97c 2\ucc28\uc6d0 \ud3c9\uba74\uc5d0 \ud22c\uc601\ud558\uac70\ub098 \uc0ac\uc2e4\uc801\uc778 \uc6c0\uc9c1\uc784\uc744 \uadf8\ub824\ub0b4\uae30 \uc704\ud574\uc11c \uc0ac\uc6a9\ud569\ub2c8\ub2e4.<\/p>\n<h2>OpenGL\uc5d0\uc11c\uc758 \ub9e4\ud2b8\ub9ad\uc2a4<\/h2>\n<table border=\"1\" style=\"border-collapse: collapse; width: 39.9342%; height: 116px;\" height=\"113\">\n<tbody>\n<tr style=\"border-style: none;\">\n<td style=\"width: 25%; height: 29px; text-align: center; border-style: none;\">A<span style=\"font-size: 8pt;\">00<\/span><\/td>\n<td style=\"width: 25%; height: 29px; text-align: center; border-style: none;\">A<span style=\"font-size: 8pt;\">01<\/span><\/td>\n<td style=\"width: 25%; height: 29px; text-align: center; border-style: none;\">A<span style=\"font-size: 8pt;\">02<\/span><\/td>\n<td style=\"width: 25%; height: 29px; text-align: center; border-style: none;\">A<span style=\"font-size: 8pt;\">03<\/span><\/td>\n<\/tr>\n<tr style=\"border-style: none;\">\n<td style=\"width: 25%; height: 29px; text-align: center; border-style: none;\">A<span style=\"font-size: 8pt;\">04<\/span><\/td>\n<td style=\"width: 25%; height: 29px; text-align: center; border-style: none;\">A<span style=\"font-size: 8pt;\">05<\/span><\/td>\n<td style=\"width: 25%; height: 29px; text-align: center; border-style: none;\">A<span style=\"font-size: 8pt;\">06<\/span><\/td>\n<td style=\"width: 25%; height: 29px; text-align: center; border-style: none;\">A<span style=\"font-size: 8pt;\">07<\/span><\/td>\n<\/tr>\n<tr style=\"border-style: none;\">\n<td style=\"width: 25%; height: 29px; text-align: center; border-style: none;\">A<span style=\"font-size: 8pt;\">08<\/span><\/td>\n<td style=\"width: 25%; height: 29px; text-align: center; border-style: none;\">A<span style=\"font-size: 8pt;\">09<\/span><\/td>\n<td style=\"width: 25%; height: 29px; text-align: center; border-style: none;\">A<span style=\"font-size: 8pt;\">10<\/span><\/td>\n<td style=\"width: 25%; height: 29px; text-align: center; border-style: none;\">A<span style=\"font-size: 8pt;\">11<\/span><\/td>\n<\/tr>\n<tr style=\"border-style: none;\">\n<td style=\"width: 25%; height: 29px; text-align: center; border-style: none;\">A<span style=\"font-size: 8pt;\">12<\/span><\/td>\n<td style=\"width: 25%; height: 29px; text-align: center; border-style: none;\">A<span style=\"font-size: 8pt;\">13<\/span><\/td>\n<td style=\"width: 25%; height: 29px; text-align: center; border-style: none;\">A<span style=\"font-size: 8pt;\">14<\/span><\/td>\n<td style=\"width: 25%; height: 29px; text-align: center; border-style: none;\">A<span style=\"font-size: 8pt;\">15<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-size: 10pt;\"><em>\ud45c1. \uc0ac\ub78c\uc774 \uc77c\ubc18\uc801\uc73c\ub85c \uc774\ud574\ud558\ub294 4 x 4 , 2\ucc28\uc6d0\ud589\ub82c\uc758 \ubaa8\uc2b5<\/em><\/span><\/p>\n<p>OpenGL\uc744 \uc0ac\uc6a9\ud558\ub294 3D \uadf8\ub798\ud53d\uc2a4\uc5d0\uc11c\ub294 \uc704\uc758 \ud45c1\uacfc \uac19\uc774 4 x 4 \uc815\ubc29\ud589\ub82c\uc744 \uc8fc\ub85c \uc0ac\uc6a9\ud558\uac8c \ub429\ub2c8\ub2e4.<br \/>\n\uc704\uc640 \uac19\uc740 \ud589\ub82c\uc744 \uc5f4\uc6b0\uc120 \ubc30\uce58\ub85c \ucef4\ud4e8\ud130 \uba54\ubaa8\ub9ac\uc0c1\uc5d0 \ubc30\uce58\ud558\uba74 \ub2e4\uc74c\uacfc \uac19\uc740 \ud615\ud0dc\ub97c \ub744\uac8c \ub429\ub2c8\ub2e4.<\/p>\n<pre class=\"lang:java decode:true\">float[] A = new float[16];<\/pre>\n<p><span style=\"font-size: 10pt;\"><em>\ud45c2. \ucef4\ud4e8\ud130\uc758 \uba54\ubaa8\ub9ac \uc0c1\uc758 1\ucc28\uc6d0 \ud589\ub82c<\/em><\/span><\/p>\n<p>OpenGL\uc744 \ub2e4\ub8e8\ub294 \uac1c\ubc1c\uc790\uc5d0\uac8c\ub294 \ud45c2\uc758 \ud615\ud0dc\uac00 \uce5c\ud654\uc801\uc785\ub2c8\ub2e4.<\/p>\n<p>\ud589\ub82c\uacfc \ubca1\ud130\ub294 3D\uadf8\ub798\ud53d\uc2a4 \ud504\ub85c\uadf8\ub798\ubc0d\uc5d0\uc11c \uc790\uc8fc \ubcf4\uac8c\ub420 \uce5c\uad6c\ub4e4\uc785\ub2c8\ub2e4. \uc774\ub7ec\ud55c \uc6a9\uc5b4\ub97c \uc0ac\uc6a9\ud560 \ub54c <strong>\uc2a4\uce7c\ub77c<\/strong>\ub77c\ub294 \uc6a9\uc5b4\ub3c4 \ud568\uaed8 \uc0ac\uc6a9\ub418\ub294\ub370, \uc2a4\uce7c\ub77c\ub294 \ud06c\uae30 \ub610\ub294 \ud2b9\uc815 \uc591\uc744 \ub098\ud0c0\ub0bc \ub54c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \uc989, \ubca1\ud130\uc5d0\uc11c \ubc29\ud5a5\uc131\uc744 \uc81c\uac70\ud55c \ub140\uc11d\uc785\ub2c8\ub2e4. \uc608\ub97c\ub4e4\uba74, \uc18d\ub825\uc740 \uc2a4\uce7c\ub77c\uc774\uace0, \uc18d\ub3c4\ub294 \ubca1\ud130\uc785\ub2c8\ub2e4.<\/p>\n<p>\ub9e4\ud2b8\ub9ad\uc2a4\ub294 \ub9e4\ud2b8\ub9ad\uc2a4\ub07c\ub9ac\u00a0 \uc5f0\uc0b0\ud560\uc218\ub3c4 \uc788\uc9c0\ub9cc, \ubca1\ud130\ub098 \uc2a4\uce7c\ub77c\uac12\uacfc\ub3c4 \uacf1\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\uac8c \uc544\uc9c1\uc740 \ubb34\uc2a8 \uc758\ubbf8\uc778\uc9c0 \uc640\ub2ff\uc9c0 \uc54a\uc744 \uac83\uc785\ub2c8\ub2e4. \uc6b0\ub9ac\ub294 \ud55c\uc810\uc758 \uc704\uce58\ub098 \ub3c4\ud615\uc744 \ub098\ud0c0\ub0b4\uae30 \uc704\ud574 \uc815\uc810(\ubca1\ud130\ub85c \ub098\ud0c0\ub0b8)\uc744 \uc0ac\uc6a9\ud574\uc654\uc2b5\ub2c8\ub2e4. \uc774 \uac12\uc744 \ub9e4\ud2b8\ub9ad\uc2a4\uc5d0 \uacf1\ud574 \ubcc0\ud658\ub41c \uc0c8\ub85c\uc6b4 \uc815\uc810(\ub2e4\ub978 \ubca1\ud130)\uc744 \ub9cc\ub4e4 \uc218 \uc788\ub2e4\ub294 \uc758\ubbf8\uc785\ub2c8\ub2e4.\u00a0<\/p>\n<p>\uc218\uc2dd\uc73c\ub85c \uc0b4\ud3b4\ubcf4\uc790\uba74 \uc544\ub798\uc640 \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.charlezz.com\/wordpress\/wp-content\/uploads\/2018\/12\/MatrixXVect.gif\" alt=\"\" width=\"367\" height=\"88\" class=\"aligncenter size-full wp-image-948\" \/><\/p>\n<p>\ub9e4\ud2b8\ub9ad\uc2a4\uc640 \ubca1\ud130\uc758 \uacf1\uc744 \ud1b5\ud574 \uc0c8\ub85c\uc6b4 \ubca1\ud130\ub97c \uc5bb\uc5c8\uc2b5\ub2c8\ub2e4! <br \/>\n\uac71\uc815\ub9c8\uc138\uc694 \uc9c1\uc811 \uacc4\uc0b0\ud560 \uc77c\uc740 \uc5c6\uc744\uac81\ub2c8\ub2e4.<\/p>\n<table border=\"1\" style=\"border-collapse: collapse; width: 100%;\">\n<tbody>\n<tr>\n<td style=\"width: 100%;\">Note : \ud589\ub82c x \uc815\uc810 = \ubcc0\ud604\ub41c \uc815\uc810<br \/>\n\ubc18\ub4dc\uc2dc \uc774 \uc21c\uc11c\ub85c \uacf1\ud574\uc57c \ud569\ub2c8\ub2e4. \ub9e4\uc6b0 \uc911\uc694\ud569\ub2c8\ub2e4.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Identity Matrix(\ub2e8\uc704\ud589\ub82c)<\/h2>\n<p>\ub2e8\uc704\ud589\ub82c\uc740 \uc784\uc758\uc758 \ubca1\ud130\ub97c \ub2e8\uc704\ud589\ub82c\uc5d0 \uacf1\ud574\ub3c4 \ubca1\ud130\uac00 \ubcc0\ud558\uc9c0 \uc54a\ub294 \ud589\ub82c\uc785\ub2c8\ub2e4.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.charlezz.com\/wordpress\/wp-content\/uploads\/2018\/12\/identityExample.png\" alt=\"\" width=\"742\" height=\"80\" class=\"aligncenter size-full wp-image-949\" srcset=\"https:\/\/charlezz.com\/wordpress\/wp-content\/uploads\/2018\/12\/identityExample.png 742w, https:\/\/charlezz.com\/wordpress\/wp-content\/uploads\/2018\/12\/identityExample-300x32.png 300w\" sizes=\"(max-width: 742px) 100vw, 742px\" \/><\/p>\n<p>\ubca1\ud130 (x,y,z,w)\ub97c 4&#215;4 \ub9e4\ud2b8\ub9ad\uc2a4\uc5d0 \uacf1\ud574\ub3c4 \uc5ec\uc804\ud788 \ubca1\ud130 (x,y,z,w)\ub85c \ub0a8\uc544\uc788\ub294\uac83\uc744 \uc704\uc758 \uc2dd\uc5d0\uc11c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc548\ub4dc\ub85c\uc774\ub4dc\uc5d0\uc11c\ub294 \ub2e8\uc704\ud589\ub82c\uc744 \ub2e4\uc74c\uacfc \uac19\uc774 \uc0dd\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"lang:java decode:true\">float[] matrix = new float[16]; \r\nMatrix.setIdentityM(matrix, 0);<\/pre>\n<h2>Translation Matrix(\ud3c9\ud589\uc774\ub3d9 \ud589\ub82c)<\/h2>\n<p>\uc815\uc810 (10,10,10) \uc774 \uc788\ub2e4\uace0 \uac00\uc815\ud569\uc2dc\ub2e4.<\/p>\n<p>\ubcc0\ud658 \uc774 \uc815\uc810\uc744 x\ubc29\ud5a5\uc73c\ub85c 10\ub9cc\ud07c \ud3c9\ud589 \uc774\ub3d9 \uc2dc\ud0a4\ub824\uba74 \uc5b4\ub5bb\uac8c \ud574\uc57c\ud560\uae4c\uc694?<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.opengl-tutorial.org\/assets\/images\/tuto-3-matrix\/translationMatrix.png\" alt=\"\" class=\"aligncenter\" \/><\/p>\n<p>\uc774\ub3d9\uc5d0 \uad00\ub828\ub41c \ud589\ub82c\uc740 \uc774\ub807\uac8c \uc0dd\uacbc\uc2b5\ub2c8\ub2e4.<br \/>\n\ub2e8\uc704\ud589\ub82c\uc5d0\uc11c \uc6b0\uce21\uc758 X,Y,Z\uac12\uc774 \uc774\ub3d9\ud558\ub294 \uc131\ubd84\uc744 \ub73b\ud569\ub2c8\ub2e4.\u00a0<\/p>\n<p>\uc815\uc810 (10,10,10)\uc744 x\ubc29\ud5a5\uc73c\ub85c 10\ub9cc\ud07c \uc774\ub3d9\ud558\uae30\ub85c \ud588\uc73c\ub2c8 \ud55c\ubc88 \ud574\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.opengl-tutorial.org\/assets\/images\/tuto-3-matrix\/translationExamplePosition1.png\" alt=\"\" \/><\/p>\n<p>\uc0dd\uac01\ubcf4\ub2e4 \uac04\ub2e8\ud569\ub2c8\ub2e4. (20,10,10,1) \uc758 \ub3d9\ucc28\uc88c\ud45c\uacc4\uc758 \ubca1\ud130\ub97c \uc5bb\uc5c8\uc2b5\ub2c8\ub2e4. <br \/>\nw\uac12\uc774 1\uc774\ub2c8 \uc5ec\uc804\ud788 \ub3d9\ucc28\uc88c\ud45c\uc5d0\uc11c \uc704\uce58\ub97c \ub73b\ud558\uae30\ub3c4 \ud569\ub2c8\ub2e4.<\/p>\n<p>\uadf8\ub7fc \uc774\ubc88\uc5d4 \uc815\uc810\uc774 \uc544\ub2cc \ubc29\ud5a5\uc131\uc744 \uac00\uc9c0\ub294 w\uac12\uc774 0\uc778, (0,0,-1,0)\uc744 x\ubc29\ud5a5\uc73c\ub85c 10\ub9cc\ud07c \uc774\ub3d9\ud574\ubcfc\uae4c\uc694?<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.opengl-tutorial.org\/assets\/images\/tuto-3-matrix\/translationExampleDirection1.png\" alt=\"\" \/><\/p>\n<p>\uc5ec\uc804\ud788 (0,0,-1,0)\uc785\ub2c8\ub2e4. w\uac00 0\uc774\ub2c8 \ubc29\ud5a5\uc744 \ub098\ud0c0\ub0b4\uace0, \ubca1\ud130\uac00 \uc774\ub3d9\uc744 \ud558\uc600\ub354\ub77c\ub3c4 \ud06c\uae30\uc640 \ubc29\ud5a5\uc774 \uac19\uc73c\ubbc0\ub85c \uc5ec\uc804\ud788 \uac19\uc740 \ubca1\ud130\uc785\ub2c8\ub2e4. \uc2e0\uae30\ud569\ub2c8\ub2e4.<\/p>\n<p>\uc548\ub4dc\ub85c\uc774\ub4dc\uc5d0\uc11c\ub294 \ub2e4\uc74c\uacfc \uac19\uc774 \ud3c9\ud589\uc774\ub3d9\uc744 \uc704\ud55c \ud589\ub82c\uc744 \ub9cc\ub4ed\ub2c8\ub2e4.<\/p>\n<pre class=\"lang:java decode:true\">float[] matrix = new float[16];\r\nMatrix.setIdentityM(matrix,0);\r\nMatrix.translateM(matrix, 0, 10,0,0);<\/pre>\n<table border=\"1\" style=\"border-collapse: collapse; width: 100%;\">\n<tbody>\n<tr>\n<td style=\"width: 100%;\"><em>Note : \uc2e4\uc81c\ub85c matrix \ubc30\uc5f4\uc744 \ud655\uc778\ud574\ubcf4\uba74 \uc131\ubd84\uc758 \uc21c\uc11c\uac00 \uadf8\ub9bc\uacfc\ub294 \ub2e4\ub97c \uc218 \uc788\ub294\ub370, \uc124\uba85\ud558\ub294 \ubd80\ubd84\uc5d0\ub294 \uc5f4\uc6b0\uc120(columns-major) \uc774\uace0, \uc548\ub4dc\ub85c\uc774\ub4dc\uc5d0\uc11c\ub294 \ud589\uc6b0\uc120(rows-major)\uc73c\ub85c \ucc98\ub9ac\ud558\uae30 \ub54c\ubb38\uc785\ub2c8\ub2e4.<\/em><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Scaling Matrix(\ud655\ub300\/\ucd95\uc18c \ud589\ub82c)<\/h2>\n<p>\uc2a4\ucf00\uc77c\ub9c1 \ub9e4\ud2b8\ub9ad\uc2a4\uc758 \ud615\ud0dc\ub294 \uc774\ub807\uc2b5\ub2c8\ub2e4.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.opengl-tutorial.org\/assets\/images\/tuto-3-matrix\/scalingMatrix.png\" alt=\"\" \/><\/p>\n<p>x,y,z\uc5d0 \ud574\ub2f9\ud558\ub294 \ubd80\ubd84\uc5d0 \uc6d0\ud558\ub294 \uac12\uc744 \ub123\uc73c\uba74 \ud655\ub300 \ub610\ub294 \ucd95\uc18c\ub97c \uc2dc\ud0ac\uc218 \uc788\uc2b5\ub2c8\ub2e4.<br \/>\n\ubaa8\ub4e0 \ubc29\ud5a5\uc5d0 \ub300\ud574 2\ubc30 \ud655\ub300\ud558\uace0 \uc2f6\ub2e4\uba74,\u00a0<\/p>\n<table border=\"1\" style=\"border-collapse: collapse; width: 22.3938%;\" height=\"117\">\n<tbody>\n<tr>\n<td style=\"width: 100%;\">2, 0, 0, 0<br \/>\n0, 2, 0, 0<br \/>\n0, 0, 2, 0<br \/>\n0, 0, 0, 1<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>2\ubc30 \ucd95\uc18c \ud558\uace0 \uc2f6\ub2e4\uba74.<\/p>\n<table border=\"1\" style=\"border-collapse: collapse; width: 22.5386%;\" height=\"119\">\n<tbody>\n<tr>\n<td style=\"width: 100%;\">0.5, 0, 0, 0<br \/>\n0, 0.5, 0, 0<br \/>\n0, 0, 0.5, 0<br \/>\n0, 0, 0, 1<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\uc785\ub2c8\ub2e4.<\/p>\n<p>\uc5b4\ub5a0\ud55c \ubca1\ud130\uc5d0 \ub300\ud574 \ub450 \ubc30 \ud655\ub300\ud55c \uacb0\uacfc\uc785\ub2c8\ub2e4.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.opengl-tutorial.org\/assets\/images\/tuto-3-matrix\/scalingExample.png\" alt=\"\" \/><\/p>\n<h2>Rotation Matrix(\ud68c\uc804 \ub9e4\ud2b8\ub9ad\uc2a4)<\/h2>\n<p>\ud68c\uc804 \ud589\ub82c\uc740 \uc0bc\uac01\ud568\uc218\ub97c \uc368\uc57c \ud558\ubbc0\ub85c \uc2a4\ucf00\uc77c\ub9c1 \ud589\ub82c\uc774\ub098 \uc774\ub3d9\ud589\ub82c\ucc98\ub7fc \ub2e8\uc21c\ud558\uc9c4 \uc54a\uc2b5\ub2c8\ub2e4.<\/p>\n<p>3D\uadf8\ub798\ud53d\uc2a4\uc5d0\uc11c \uc5b4\ub5a4 \uc624\ube0c\uc81d\ud2b8\ub97c \ud68c\uc804\ud558\uae30 \uc704\ud574\uc11c\ub294 \uc5b4\ub5a4 \ud55c\ucd95\uc744 \uae30\uc900\uc73c\ub85c \uba87\ub3c4\ub9cc\ud07c \ud68c\uc804 \ud560 \uac83\uc778\uc9c0\ub97c \uc815\ud574\uc57c\ud569\ub2c8\ub2e4. \uc774\ub54c\uc758 \uac01\ub3c4\ub97c \uc384\ud0c0\ub77c\uace0 \uac00\uc815\ud558\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<p><a href=\"https:\/\/www.charlezz.com\/?attachment_id=43778\" rel=\"attachment wp-att-43778\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.charlezz.com\/wordpress\/wp-content\/uploads\/2018\/12\/im03.jpg\" alt=\"\" width=\"925\" height=\"214\" class=\"aligncenter size-full wp-image-43778\" srcset=\"https:\/\/charlezz.com\/wordpress\/wp-content\/uploads\/2018\/12\/im03.jpg 925w, https:\/\/charlezz.com\/wordpress\/wp-content\/uploads\/2018\/12\/im03-300x69.jpg 300w, https:\/\/charlezz.com\/wordpress\/wp-content\/uploads\/2018\/12\/im03-768x178.jpg 768w\" sizes=\"(max-width: 925px) 100vw, 925px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>\ud589\ub82c\uc758 \uacf1\uc148\uc740 \uacb0\ud569 \ubc95\uce59\uc774 \uc131\ub9bd\ud558\ubbc0\ub85c \uc704\uc5d0\uc11c \uad6c\ud55c x,y,z\uc758 \ud68c\uc804 \uac12\uc744 \uc21c\uc11c\ub300\ub85c \uacf1\ud558\uba74 \ub429\ub2c8\ub2e4. \uc774\ub97c \uc624\uc77c\ub7ec\uac01(Euler Angles)\ub77c \ud569\ub2c8\ub2e4. \uc624\uc77c\ub7ec\uac01\uc73c\ub85c \ubb3c\uccb4\ub97c \ud68c\uc804 \ud560 \ub54c\ub294 \ud68c\uc804 \uc21c\uc11c\uc5d0 \uc8fc\uc758\ud558\uc5ec\uc57c \ud569\ub2c8\ub2e4.\uac01 x,y,z\uc758 \uac01 \ucd95\uc740 \uc11c\ub85c \uc885\uc18d\uc801\uc774\uae30 \ub54c\ubb38\uc5d0 \ud55c\ucd95\uc774 \ud68c\uc804\uc2dc \ub2e4\ub978\ucd95\uc5d0 \uc601\ud5a5\uc744 \ubbf8\uce69\ub2c8\ub2e4. \uadf8\ub85c\uc778\ud574 \ud68c\uc804 \uc21c\uc11c\uc5d0 \ub530\ub77c \ubb3c\uccb4\uc758 \ud68c\uc804\ub41c \ucd5c\uc885 \ubc29\uc704\uac00 \ub2ec\ub77c\uc9d1\ub2c8\ub2e4. \uc77c\ubc18\uc801\uc73c\ub85c ZXY(Roll-Pitch-Yaw) \ub610\ub294 XYZ \ud68c\uc804\uc774 \uc8fc\ub85c \uc0ac\uc6a9\ub429\ub2c8\ub2e4. \uc774\uc640 \uac19\uc740 \ud2b9\uc131\ub54c\ubb38\uc5d0 \uc9d0\ubc8c\ub77d\uc774\ub77c\ub294 \ud604\uc0c1\uc774 \ubc1c\uc0dd\ud569\ub2c8\ub2e4.<\/p>\n<p>\uc548\ub4dc\ub85c\uc774\ub4dc\uc5d0\uc11c \ud68c\uc804 \ud589\ub82c\uc744 \ub9cc\ub4e4\uae30 \uc704\ud574\uc11c\ub294 \ub2e4\uc74c\uacfc \uac19\uc740 \ucf54\ub4dc\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4.<\/p>\n<pre class=\"lang:java decode:true\">Matrix.setRotateM(float[] rm, int rmOffset, float a, float x, float y, float z)<\/pre>\n<ul>\n<li>rm : \ub9e4\ud2b8\ub9ad\uc2a4<\/li>\n<li>rmOffset : \ub9e4\ud2b8\ub9ad\uc2a4 \ubc30\uc5f4\uc758 \uc2dc\uc791\uc810, float\ud615 16\uac1c\uc9dc\ub9ac \ubc30\uc5f4\uc744 \uc0ac\uc6a9\ud55c\ub2e4\uba74 \ub2f9\uc5f0\ud788 0\uc774 \ub41c\ub2e4.<\/li>\n<li>a : \ud68c\uc804\ud558\uace0\uc790 \ud558\ub294 \uac01\ub3c4<\/li>\n<li>x : x\ucd95 \ud68c\uc804 \ubca1\ud130<\/li>\n<li>y : y\ucd95 \ud68c\uc804 \ubca1\ud130<\/li>\n<li>z : z\ucd95 \ud68c\uc804 \ubca1\ud130<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>\ub9e4\ud2b8\ub9ad\uc2a4\uc758 \uc138\uacc4\ub85c&#8230; \uc9c0\uae08\uae4c\uc9c0\ub294 \uc810 , \uc120, \uc0bc\uac01\ud615 \ub610\ub294 \uc0bc\uac01\ud615 \uacb0\ud569\uc744 \ud1b5\ud55c \ub2e4\uac01\ud615\uc744 \uadf8\ub9ac\ub294 \ubc29\ubc95\uc5d0 \ub300\ud574\uc11c \uc54c\uc544\ubcf4\uc558\uc2b5\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \uc774\ub294 \ud3c9\uba74\uc0c1\uc758 2D\uadf8\ub798\ud53d\uc774\uc9c0 3D\ub294 \uc544\ub2c8\uc600\uc2b5\ub2c8\ub2e4. \ub610\ud55c \uc815\uc0ac\uac01\ud615\uc774 \ub098\uc624\uae38 \uae30\ub300\ud588\uc73c\ub098 \uc9c1\uc0ac\uac01\ud615\uc73c\ub85c \ub098\ud0c0\ub098\ub294 \uac83\uc744 \ubcfc \uc218 \uc788\uc5c8\uc2b5\ub2c8\ub2e4. \uc0ac\uc2e4 \ucf54\ub4dc\ub85c \uc815\uc0ac\uac01\ud615\uc73c\ub85c \ud45c\ud604\ud558\ub294 \ubc29\ubc95\uc740 \ub9e4\uc6b0 \uac04\ub2e8\ud558\uc9c0\ub9cc, \uc774\ud574\ud558\uae30\ub294 \uc27d\uc9c0\uac00 \uc54a\uae30 \ub54c\ubb38\uc5d0 \uc774\uc804 \ud3ec\uc2a4\ud2b8\uc5d0\uc11c\ub294 \ub2e4\ub8e8\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4. \uadf8\ub798\uc11c \uc774\ubc88\uc7a5\uc5d0\ub294 \ubbf8\ub8e8\uace0 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"inline_featured_image":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0},"categories":[24],"tags":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/charlezz.com\/index.php?rest_route=\/wp\/v2\/posts\/934"}],"collection":[{"href":"https:\/\/charlezz.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/charlezz.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/charlezz.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/charlezz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=934"}],"version-history":[{"count":8,"href":"https:\/\/charlezz.com\/index.php?rest_route=\/wp\/v2\/posts\/934\/revisions"}],"predecessor-version":[{"id":43779,"href":"https:\/\/charlezz.com\/index.php?rest_route=\/wp\/v2\/posts\/934\/revisions\/43779"}],"wp:attachment":[{"href":"https:\/\/charlezz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=934"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/charlezz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=934"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/charlezz.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=934"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}