{"id":35,"date":"2005-05-08T08:10:00","date_gmt":"2005-05-08T08:10:00","guid":{"rendered":"http:\/\/www.gisdeveloper.co.kr\/?p=35"},"modified":"2017-01-29T20:25:40","modified_gmt":"2017-01-29T11:25:40","slug":"opengl-tutorial-using-the-quadrics","status":"publish","type":"post","link":"http:\/\/www.gisdeveloper.co.kr\/?p=35","title":{"rendered":"[OpenGL Tutorial] Using the Quadrics"},"content":{"rendered":"<p><P><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gisdeveloper.co.kr\/wp-content\/uploads\/1\/1186656047.jpg\" class=\"alignleft\" width=\"200\" height=\"150\" alt=\"\uc0ac\uc6a9\uc790 \uc0bd\uc785 \uc774\ubbf8\uc9c0\" \/>Quadrics\uac00 \ubb34\uc5c7\uc778\uc9c0 \ubd80\ud130 \uc54c\uc544\uc57c \ud558\uaca0\ub2e4. Quadrics\uc740 \uacf5\uac04\uc0c1\uc5d0 \uae30\ud558\ud559\uc801\uc778 \ubaa8\uc591\uc744 \uc0dd\uc131\ud558\ub294 \uac83\uc774\ub2e4. \uc5ec\uae30\uc11c \ub9d0\ud558\ub294 \uae30\ud558\ud559\uc801 \ubaa8\uc591\uc774\ub780 \uc6d0\ubfd4, \uc6d0\ud1b5, \uc6d0\ud310, \uad6c \ub4f1\uc744 \ub9d0\ud55c\ub2e4. \uc989 Quadrics\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc27d\uace0 \uac04\ub2e8\ud558\uac8c \uc704\uc5d0\uc11c \uc5b8\uae09\ud55c \ubb3c\uccb4\ub97c \uc0dd\uc131\ud560 \uc218 \uc788\ub2e4. \uadf8\ub807\ub2e4\uba74 \uc774\uc81c Quadrics\ub97c \uc0ac\uc6a9\ud558\uc5ec \ubb3c\uccb4\ub97c \ub9cc\ub4e4\uace0 \uc2dc\uc5f0\ud574\ubcf4\uc790 !!<\/P><P>\uba3c\uc800 Quadrics\ub97c \uc774\uc6a9\ud558\uc5ec \ubb3c\uccb4\ub97c \ub9cc\ub4e4\uae30 \uc804\uc5d0 Quadrics\ub97c \uc0dd\uc131\ud558\uc5ec\uc57c \ud55c\ub2e4. Quadrics\ub294 \uc18d\uc131\uc744 \uac00\uc9c0\uace0 \uc788\ub294\ub370, \uadf8 \uc18d\uc131\uc774\ub780 \uadf8\ub9ac\uace0\uc790 \ud558\ub294 \uac83, \uadf8\ub9ac\uace0\uc790 \ud558\ub294 \uac83\uc758 \uc704\uce58(\uc6d0\uc810)\uacfc \uac12(\ubc18\uc9c0\ub984 \ub4f1\ub4f1), \uad11\uc6d0 \ubaa8\ub4dc, \ud14d\uc2a4\uccd0 \ubaa8\ub4dc, \uadf8\ub9ac\uace0 \uadf8\ub9ac\ub294 \ub3c4\uc911\uc5d0 \uc5d0\ub7ec\uac00 \ubc1c\uc0dd\ud560 \uacbd\uc6b0 \ud638\ucd9c\ud560 CallBack \ud568\uc218\ub4e4\uc744 \ub9d0\ud55c\ub2e4. Quadrics\ub97c \uc0dd\uc131\ud558\ub294 \ubc29\ubc95\uc740 \uc27d\ub2e4. \uc81c\uacf5\ub418\ub294 Factory(\uc0dd\uc131) \ud568\uc218\uac00 \uc788\uc73c\ub2c8 \ub9d0\uc774\ub2e4.<\/P><\/p>\n<pre>GLUquadricObj *obj;\r\nobj = gluNewQuadric();<\/pre>\n<p>\uc0dd\uc131\uc740 \uc704\uc758 \ucf54\ub4dc\uac00 \uc804\ubd80\uc774\ub2e4. \uac04\ub2e8\ud558\ub2e4. \ub098\uc911\uc5d0 \uc0dd\uc131\ub41c Quadric\uac1d\uccb4\uc758 \uc778\uc2a4\ud134\uc2a4 \ubcc0\uc218\uc778 obj\ub97c \uc774\uc6a9\ud558\uc5ec \ubb3c\uccb4\ub97c \uadf8\ub9ac\ub294\ub370 \uc0ac\uc6a9\ub418\ub294 \ud568\uc218\ub294 gluCylinder, gluDisk, gluSphere\uac00 \uc788\uace0 \ubbf8\ub798\uc5d0 \ub354 \ucd94\uac00\ub420 \uac83\uc774\ub2e4. \uc774 \ud568\uc218\ub4e4\uc740 \uccab\ubc88\uc9f8 \uc778\uc790\ub85c Quadric \uac1d\uccb4\ub97c \uc694\uad6c\ud558\uace0 \uac01 \ud568\uc218\uc5d0 \ub530\ub77c \uc2e4\ub9b0\ub354 \ubaa8\uc591\uc744 \uadf8\ub9b4\uac83\uc778\uc9c0 \ub514\uc2a4\ud06c \ubaa8\uc591\uc744 \uadf8\ub9b4\uac83\uc778\uc9c0 \uad6c \ubaa8\uc591\uc744 \uadf8\ub9b4 \uac83\uc778\uc9c0\ub97c \uc9c0\uc815\ud558\ub294 \uac83\uc774\ub2e4. \uadf8\ub807\ub2e4\uba74 \uc815\uc791 \uadf8\ub9b4 \ubb3c\uccb4\uc5d0 \ub300\ud55c \uc18d\uc131\uc740 \uc5b4\ub5bb\uac8c \uc124\uc815\ud558\ub294 \uac83\uc778\uac00? \uc608\ub97c \ub4e4\uc5b4\uc11c \ubb3c\uccb4\ub97c Wire Frame \ud615\ud0dc\ub85c \uadf8\ub9b4\uac83\uc778\uc9c0 Solid \ud615\ud0dc\ub85c \uadf8\ub9b4\uac83\uc778\uc9c0\uc758 \uacb0\uc815\uc740 \uc5b4\ub5bb\uac8c \ud558\ub294\uac00? \ub610\ud55c Solid \ud615\ud0dc\ub85c \uadf8\ub9b0\ub2e4\uba74 \ubb3c\uccb4\uc758 \uba74\uc744 Flat\ud615\ud0dc\ub85c \uadf8\ub9b4\uac83\uc778\uc9c0 Smooth\ud558\uac8c \uadf8\ub9b4\uac83\uc778\uc9c0\uc758 \uacb0\uc815\uc740 \uc5b4\ub5bb\uac8c \ud558\ub294\uac00? \ubc95\uc120\ubca1\ud130\uc758 \ubc29\ud5a5\uc744 \ubc14\uae53\ucabd\uc73c\ub85c \ud560\uac83\uc778\uc9c0 \uc548\ucabd\uc73c\ub85c \ud560\uac83\uc778\uc9c0\uc758 \uacb0\uc815\uc740 \uc5b4\ub5bb\uac8c \ud558\ub294\uac00? \uadf8\ub9ac\uace0 \ub098\uc911\uc5d0 Quadric\ub85c \uc0dd\uc131\ud55c \uac1d\uccb4\uc5d0 \ub300\ud574 \ud14d\uc2a4\uccd0 \ub9f5\ud551\uc744 \ud560\uacbd\uc6b0 \ud14d\uc2a4\uccd0 \ub9f5 \uc88c\ud45c\ub97c \uc790\ub3d9\uc73c\ub85c \uc0dd\uc131\uc2dc\ud0a4\uac8c \ud560\uac83\uc778\uac00 \uc544\ub2c8\uba74 \uc54a\ud560\uac83\uc778\uac00\uc758 \uc9c0\uc815\uc740 \uc5b4\ub5bb\uac8c \ud558\ub294\uac00? \uc774 \ub9ce\uc740 \uc9c8\ubb38\uc5d0 \ub300\ud55c \ub2f5\uc740 \uc544\ub798\uc640 \uac19\ub2e4.<P>\uc77c\ub2e8 Quadric \uac1d\uccb4\uac00 \uc0dd\uc131\ub418\uba74 \ub2e4\uc74c\uc758 \ud568\uc218\ub97c \ud1b5\ud574\uc11c \uadf8 \uc18d\uc131\uc744 \uc124\uc815\ud560\uc218\uc788\ub2e4.<\/P><P><STRONG>1. void gluQuadricDrawStyle(GLUquadricObj *obj, GLenum drawStyle)<\/STRONG><\/P><P>\uc774 \ud568\uc218\uc758 \uccab\ubc88\uc9f8\uc778\uc790\ub294 \uc18d\uc131\uc744 \uc124\uc815\ud560 Quadric\uc5d0 \ub300\ud55c \uc778\uc2a4\ud134\uc2a4 \ubcc0\uc218\uc5d0 \ub300\ud55c \ud3ec\uc778\ud130\uac00 \uc624\uba70 \ub450\ubc88\uc9f8 \ubcc0\uc218\uc5d0 \uc62c\uc218\uc788\ub294 \uac12\uc740 GLU_FILL, GLU_LINE, GLU_SILHOUETTE, GLU_POINT\uac00 \uc628\ub2e4. Wire Frame \ud615\ud0dc\ub97c \uc6d0\ud55c\ub2e4\uba74 GLU_LINE\uac00 \ud544\uc694\ud558\uace0 Soild \ud615\ud0dc\ub97c \uc6d0\ud55c\ub2e4\uba74 GUL_FILL\uc774 \uadf8\ub9ac\uace0 \ub2e8\uc9c0 \uc810\ub9cc\uc73c\ub85c \uadf8\ub9ac\uae30\ub97c \uc6d0\ud55c\ub2e4\uba74 GLU_POINT\uac00 \uc628\ub2e4. GLU_SILHOUETTE\ub294 \uc120\uc73c\ub85c \uc678\ubd80 \ubaa8\uc11c\ub9ac\ub9cc\uc744 \uadf8\ub9ac\uac8c \ub41c\ub2e4.<\/P><P><STRONG>2. void gluQuadricNormals(GLUquadricObj *obj, GLenum normals)<\/STRONG><\/P><P>\uc704\uc758 \ud568\uc218\ub294 \ubc95\uc120\ubca1\ud130\ub97c \uc81c\uc5b4\ud558\ub294\ub370 \uc0ac\uc6a9\ub418\ub294\ub370 \ubc95\uc120 \ubca1\ud130\uc5d0\uc758\ud574\uc11c \ube5b\uc5d0 \ub300\ud55c \uc601\ud5a5\uc774 \uacb0\uc815\ub41c\ub2e4\ub294 \uac83\uc740 \uc9c0\ub09c &#8220;\ube5b&#8221;\uc5d0 \ub300\ud55c \uc7a5\uc5d0\uc11c \ucda9\ubd84\ud788 \uc124\uba85\ud588\ub2e4. \uc774 \ud568\uc218\uc758 \uccab\ubc88\uc9f8 \uc778\uc790\ub294 \uc5ed\uc2dc Quadric\uc758 \uc778\uc2a4\ud134\uc2a4 \ubcc0\uc218\uc5d0 \ub300\ud55c \ud3ec\uc778\ud130\ub97c \uac16\uace0 \ub450\ubc88\uc9f8 \uc778\uc790\uc5d0 \uc62c\uc218\uc788\ub294 \uc778\uc790\uc758 \uac12\uc5d0\ub294 GLU_NONE, GLU_FLAT, GLU_SMOOTH\uac00 \uc628\ub2e4. GLU_NONE\ub294 \ubc95\uc120\ubca1\ud130\ub97c \uc0dd\uc131\ud558\uc9c0 \uc54a\ub294\ub370 \uc774\ub807\uac8c \ub418\uba74 \ube5b\uc5d0 \ub300\ud574\uc11c \uc544\ubb34\ub7f0 \ud6a8\uacfc\ub97c \uc5bb\uc744 \uc218 \uc5c6\ub2e4. GLU_FLAT\ub294 \uba74\uc774 \uae4d\uc778\uac83\ucc98\ub7fc \ubcf4\uc774\ub3c4\ub85d \ubc95\uc120\ubca1\ud130\ub97c \uc0dd\uc131\ud558\uace0 GL_SMOOTH\ub294 \uba74\uc774 \ubd80\ub4dc\ub7fd\uac8c \ubcf4\uc774\ub3c4\ub85d \uc989, \ubb3c\uccb4\uc758 \ubaa8\uc11c\ub9ac\ub97c \ubd80\ub4dc\ub7fd\uac8c \ubcf4\uc774\uac8c \ubc95\uc120 \ubca1\ud130\ub97c \uc0dd\uc131\ud55c\ub2e4.<\/P><P><STRONG>3. void gluQuadricOrientation(GLUquadricObj *obj, GLenum orientation)<\/STRONG><\/P><P>\uc774 \ud568\uc218\ub294 \ubc95\uc120\ubca1\ud130\uc758 \ubc29\ud5a5\uc744 \uc9c0\uc815\ud558\uae30 \uc704\ud574 \uc0ac\uc6a9\ub41c\ub2e4. \uccab\ubc88\uc9f8 \uc778\uc790\ub294 Quadric\uc758 \uc778\uc2a4\ud134\uc2a4 \ubcc0\uc218\uc5d0 \ub300\ud55c \ud3ec\uc778\ud130\ub97c \uac16\uace0 \ub450\ubc88\uc9f8 \uc778\uc790\uac00 \uac16\uc744 \uc218 \uc788\ub294 \uac12\uc5d0\ub294 GLU_OUTSIDE\uc640 GLU_INSIDE\uac00 \uc628\ub2e4. GLU_OUTSIDE\ub294 \ubc95\uc120\ubca1\ud130\ub97c \ubb3c\uccb4\uc5d0 \ub300\ud574\uc11c \ubc14\uae53\ucabd\uc73c\ub85c \ubc95\uc120\ubca1\ud130\uc758 \ubc29\ud5a5\uc744 \uc9c0\uc815\ud558\uace0 GLU_INSIDE\ub294 \ubc95\uc120\ubca1\ud130\ub97c \ubb3c\uccb4\uc5d0 \ub300\ud574\uc11c \uc548\ucabd\uc73c\ub85c \ubc29\ud5a5\uc744 \uc9c0\uc815\ud558\ub3c4\ub85d \uc0dd\uc131\ud55c\ub2e4.<\/P><P><STRONG>4. void gluQuadricTexture(GLUquadricObj *obj, GLboolean textureCoords)<\/STRONG><\/P><P>\uc774 \ud568\uc218\ub294 \ud14d\uc2a4\uccd0 \ub9f5\ud551 \uc88c\ud45c\ub97c \uc0dd\uc131\ud560 \uac83\uc778\uc9c0 \uc54a\ud560 \uac83\uc778\uc9c0\ub97c \uc9c0\uc815\ud558\ub294 \uac83\uc774\ub2e4. \uccab\ubc88\uc9f8 \uc778\uc790\ub294 Quadric\uc758 \uc778\uc2a4\ud134\uc2a4 \ubcc0\uc218\uc5d0 \ub300\ud55c \ud3ec\uc778\ud130\ub97c \uac16\uace0 \ub450\ubc88\uc9f8 \uc778\uc790\uac00 \uac16\uc744 \uc218 \uc788\ub294 \uac12\uc5d0\ub294 GL_TRUE\uc640 GL_FALSE\uc774\ub2e4. GL_TRUE\ub85c \ud560\uacbd\uc6b0 \ud14d\uc2a4\uccd0 \ub9f5\ud551 \uc88c\ud45c\ub97c \uc0dd\uc131\ud558\uba70 GL_FALSE\ub294 \ud14d\uc2a4\uccd0 \ub9f5\ud551 \uc88c\ud45c\ub97c \uc0dd\uc131\ud558\uc9c0 \uc54a\ub294\ub2e4.<\/P><P>\uc790 \uc774\ub807\uac8c \ud574\uc11c Quadric\uc5d0 \ub300\ud55c \uc18d\uc131\uc744 \uc124\uc815\ud558\ub294 \ud568\uc218\uc5d0 \ub300\ud55c \uc18c\uac1c\ub97c \ub9c8\uce58\uace0 \uc774\uc81c \ubcf8\uaca9\uc801\uc73c\ub85c \uc6b0\ub9ac\uac00 \ud544\uc694\ub85c\ud558\ub294 \ubb3c\uccb4\ub97c \uadf8\ub824\ubcf4\ub294 \uac83\uc5d0 \ub300\ud574\uc11c \uc54c\uc544\ubcf4\uc790!!<\/P><P>\uc0ac\uc6a9\ud560 \uae30\ubcf8 \uc18c\uc2a4\ub294 1\uc7a5\uc758 \uc18c\uc2a4\uc5d0\uc11c \uc2dc\uc791\ud55c\ub2e4.<\/P><P>\uba3c\uc800 Quadric \uac1d\uccb4\ub97c \uc0dd\uc131\ud558\uae30 \uc704\ud55c \ubcc0\uc218\ub97c \ud558\ub098 \uc120\uc5b8\ud558\uc790. \ucf54\ub4dc \uc804\uccb4\uc5d0\uc11c \uc774 \ubcc0\uc218\ub97c \ucc38\uc870\ud558\ubbc0\ub85c \uc804\uc5ed \ubcc0\uc218\ub97c \uc120\uc5b8\ud558\ub294 \uacf3\uc5d0 \uc120\uc5b8\ud55c\ub2e4.<\/P><\/p>\n<pre>GLUquadricObj *obj;<\/pre>\n<p>\uc774\uc81c Quadric\ub97c \uc0dd\uc131\ud574\uc57c \ud55c\ub2e4. OpenGL\uc744 \ucd08\uae30\ud654 \uc2dc\ud0a4\ub294 \ubd80\ubd84\uc778 InitGL \ud568\uc218\ubd80\uc5d0\uc11c \ub05d\ubd80\ubd84\ucbe4\uc5d0 \ub2e4\uc74c\uc758 \ucf54\ub4dc\ub97c \ucd94\uac00\ud55c\ub2e4.<\/p>\n<pre>obj = gluNewQuadric(); \/\/ <1>\r\ngluQuadricDrawStyle(obj, GLU_FILL); \/\/ <2>\r\ngluQuadricNormals(obj, GLU_SMOOTH); \/\/ <3>\r\ngluQuadricOrientation(obj, GLU_OUTSIDE); \/\/ <4>\r\ngluQuadricTexture(obj, GL_FALSE); \/\/ <5>\r\n   \r\nglEnable(GL_LIGHTING); \/\/ <6>\r\nglEnable(GL_LIGHT0); \/\/ <7>\r\nglEnable(GL_COLOR_MATERIAL); \/\/ <8><\/pre>\n<p><1>\ubc88 \ucf54\ub4dc\ub294 \uc2e4\uc81c\uc801\uc73c\ub85c Quadric \uac1d\uccb4\ub97c \uc0dd\uc131\uc2dc\ud0a4\ub294 \ucf54\ub4dc\uc774\ub2e4.<br \/>\n<P><2>\ubc88 \ucf54\ub4dc\ub294 Solid \ud615\ud0dc\ub85c \ubb3c\uccb4\ub97c \uadf8\ub9b0\ub2e4\ub294 \uac83\uc774\uace0 <3>\ubc88\uc740 \uba74\uc5d0 \ub300\ud574\uc11c \ubd80\ub4dc\ub7fd\uac8c \uadf8\ub9b0\ub2e4\ub294 \uac83\uc774\uace0 <4>\ubc88\uc740 \ubc95\uc120\ubca1\ud130\uc758 \ubc29\ud5a5\uc744 \ubb3c\uccb4\uc5d0 \ub300\ud574\uc11c \ubc14\uae53\ucabd\uc73c\ub85c \ud5a5\ud558\ub3c4\ub85d \ubc95\uc120\ubca1\ud130\ub97c \uc0dd\uc131\ud558\ub77c\ub294 \uc758\ubbf8\uc774\ub2e4. <5>\ubc88\uc740 \ud14d\uc2a4\uccd0 \ub9f5\uc744 \uc801\uc6a9\ud558\uc9c0 \uc54a\uc744 \uac83\uc73c\ubbc0\ub85c \ud14d\uc2a4\uccd0 \ub9f5\ud551 \uc88c\ud45c\ub97c \uc0dd\uc131\ud558\uc9c0 \ub9d0\ub77c\ub294 \uc758\ubbf8\uc774\ub2e4.<\/P><P><5>~<8>\ubc88\uc740 \ube5b\uc744 \ud65c\uc131\ud654\uc2dc\ud0a4\uace0 \uce7c\ub77c \ucd94\uc801 \uae30\ub2a5\uc744 \uc774\uc6a9\ud574\uc11c \ubb3c\uccb4\uc758 \uc7ac\uc9c8\uc744 \uc124\uc815\ud558\ub77c\uace0 \uc9c0\uc2dc\ud55c\ub2e4. \ucc38\uace0\ub85c LIGHT0\ub294 \ubcc4\ub3c4\ub85c \uc124\uc815\ud558\uc9c0 \uc54a\uc544\ub3c4 \uae30\ubcf8\uc801\uc73c\ub85c \uadf8\ub798\ud53d \uce74\ub4dc\uc5d0\uc11c \uac12\uc774 \uc124\uc815\ub418\uc5b4 \uc788\ub294 \ube5b\uc774\ub2e4. \ud544\uc790\uc758 \uadf8\ub798\ud53d \uce74\ub4dc(G400)\uc5d0\uc11c\ub294 \ud73c\ub8e1\ud558\uac8c \uc791\ub3d9\ud588\ub2e4.<\/P><P>\uc790! \uc774\ub807\uac8c \ud574\uc11c Quadric \uac1d\uccb4\ub97c \uc0dd\uc131\ud588\uace0 \uadf8 \uc18d\uc131\uc744 \uc124\uc815\ud588\uc73c\uba70 \ub098\uba38\uc9c0 \ube5b\uacfc \uc7ac\uc9c8\uc5d0 \ub300\ud55c \uc124\uc815 \ub610\ud55c \ub05d\ub0c8\ub2e4.<\/P><P>\uadf8\ub807\ub2e4\uba74 \ubb34\uc5b8\uac00\ub97c \uc0dd\uc131\ud588\uc73c\ub2c8 \ub098\uc911\uc5d0 \ud544\uc694\uce58 \uc54a\uc73c\uba74 \uba54\ubaa8\ub9ac\uc5d0\uc11c \uc81c\uac70\ud574\uc57c \ud558\ub294 \uac83\uc740 \ud504\ub85c\uadf8\ub798\uba38\uc5d0 \ub300\ud55c \ubd88\ubb38\uc728\uc774\ub2e4. Quadric \uac1d\uccb4\ub97c \uc81c\uac70\ud558\ub294 \ubc29\ubc95\uc740 \ubb34\uc5b8\uc778\uac00? \uc2e4\uc81c\uc801\uc73c\ub85c \uc81c\uac70\ud558\ub294 \ucf54\ub4dc\uc758 \uc704\uce58\ub294 WinMain \ud568\uc218\uc758 \ub05d\ubd80\ubd84\ucbe4\uc5d0 \uc704\uce58\ud55c\ub2e4. \uc544\ub798\uc640 \uac19\ub2e4.<\/P><\/p>\n<pre>            .\r\n            .\r\n            .\r\n   \r\n    gluDeleteQuadric(obj); \/\/ \ucd94\uac00 \ucf54\ub4dc\r\n   \r\n    \/\/ Shutdown\r\n    KillGLWindow(); \/\/ Kill The Window\r\n     return (msg.wParam); \/\/ Exit The Program\r\n}<\/pre>\n<p>\uc774\uc81c \uc2e4\uc81c\uc801\uc73c\ub85c Quadirc\uac1d\uccb4\ub97c \uc774\uc6a9\ud558\uc5ec \ubb3c\uccb4\ub97c \uadf8\ub9ac\ub294 \uc791\uc5c5\ub9cc \ub0a8\uc558\ub2e4. \uadf8\ub9ac\ub294 \uc791\uc5c5\uc740 DrawGLScene \ud568\uc218\uc5d0 \uc704\uce58\ud55c\ub2e4. \ub2e4\uc74c\uc740 \uadf8 \ud568\uc218\uc5d0 \ub300\ud55c \ucf54\ub4dc \uc804\uccb4\uc774\ub2e4.<\/p>\n<pre>int DrawGLScene(GLvoid)\r\n{\r\n    static GLfloat rot = 0.0f;\r\n   \r\n    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);\r\n    glLoadIdentity();\r\n    glTranslatef(0.0f, 0.0f, -15.0f);\r\n   \r\n    glPushMatrix();\r\n    glTranslatef(-5.0f, 0.0f, 0.0f);\r\n    glRotatef(rot, 1.0f, 1.0f, 1.0f);\r\n    glTranslatef(0.0f, 0.0f, -2.0f);\r\n    glColor3f(0.6f, 0.6f, 1.0f);\r\n    gluCylinder(obj, 1.0f, 1.0f, 4.0f, 16, 4); \/\/<1>\r\n    glPopMatrix();\r\n   \r\n    glPushMatrix();\r\n    glTranslatef(0.0f, 0.0f, 0.0f);\r\n    glRotatef(rot, 1.0f, 1.0f, 1.0f);\r\n    glColor3f(0.6f, 0.6f, 1.0f);\r\n    glColor3f(1.0f, 0.6f, 0.6f);\r\n    gluDisk(obj, 0.2f, 1.6f, 16, 4); \/\/<2>\r\n    glPopMatrix();\r\n   \r\n    glPushMatrix();\r\n    glTranslatef(5.0f, 0.0f, 0.0f);\r\n    glRotatef(rot, 1.0f, 1.0f, 1.0f);\r\n    glColor3f(0.6f, 0.6f, 1.0f);\r\n    glColor3f(0.6f, 1.0f, 0.6f);\r\n    gluSphere(obj, 1.5f, 24, 24); \/\/<3>\r\n    glPopMatrix();\r\n   \r\n    rot += 1.0f;\r\n    if(rot > 359.0f) rot = 1.0f;\r\n   \r\n    return TRUE;\r\n}<\/pre>\n<p>\uc0c8\ub86d\uac8c \ucd94\uac00\ub41c \ucf54\ub4dc\ub294 \ub178\ub780\uc0c9\uc73c\ub85c \ub098\ud0c0\ub0c8\ub2e4. \uc2e4\uc81c \uc911\uc694\ud55c Quadric \uac1d\uccb4\ub97c \uadf8\ub9ac\ub294 \ucf54\ub4dc\uc5d0 \ub300\ud574\uc11c\ub9cc \uc124\uba85\ud558\ub3c4\ub85d \ud55c\ub2e4. \ub098\uba38\uc9c0 \ubd80\ubd84\uc740 \uc9c0\ub09c\uc7a5\uc5d0\uc11c \uc774\ubbf8 \ub2e4\ub8e8\uc5c8\ub358 \ub0b4\uc6a9\uc774\ubbc0\ub85c \ud574\ub2f9 \uc7a5\ub4e4\uc744 \ucc38\uace0\ud558\uae30 \ubc14\ub780\ub2e4.<br \/>\n<P><1>\ubc88 \ucf54\ub4dc\uc5d0\uc11c\ub294 gluCylinder \ud568\uc218\ub97c \uc0ac\uc6a9\ud588\ub294\ub370 \uccab\ubc88\uc9f8 \uc778\uc790\ub294 Quadric\uc758 \uc778\uc2a4\ud134\uc2a4 \ubcc0\uc218\uc5d0 \ub300\ud55c \ud3ec\uc778\ud130\uac00 \uc628\ub2e4. \ub450\ubc88\uc9f8 \uc778\uc790\ub294 \uc2e4\ub9b0\ub354\uc758 \ubc11\ubd80\ubd84\uc758 \ubc18\uc9c0\ub984 \ud06c\uae30\uc774\uace0 \uc138\ubc88\uc9f8\ub294 \uc2e4\ub9b0\ub354\uc758 \uc717\ubd80\ubd84\uc758 \ubc18\uc9c0\ub984 \ud06c\uae30\uc774\ub2e4. \ub124\ubc88\uc9f8\ub294 \uc2e4\ub9b0\ub354\uc758 \uae38\uc774\ub97c \uc9c0\uc815\ud558\ub294 \uac83\uc774\uace0 \ub2e4\uc12f\ubc88\uc9f8\ub294 Slice\uc758 \uc218\ub97c \uc5ec\uc12f\ubc88\uc9f8\ub294 Stack\uc758 \uc218\ub97c \ub098\ud0c0\ub0b8\ub2e4. Slice\ub97c \ub192\uc77c\uc218\ub85d \uc2e4\ub9b0\ub354\uc758 \ubaa8\uc591\uc774 \ubcf4\ub2e4 \ubd80\ub4dc\ub7ec\uc6cc\uc9c4\ub2e4. WireFrame \ubaa8\ub4dc\ub85c \uc124\uc815\ud574\uc11c \uadf8\ub824\ubcf8\ub2e4\uba74 \ubd84\uba85\ud558\uac8c \uadf8 \ub0b4\uc6a9\uc744 \ud30c\uc545\ud560\uc218\uc788\ub2e4. \uc2e4\ub9b0\ub354\uc758 \uc717\ubd80\ubd84\uacfc \uc544\ub7ab\ubd80\ubd84\uc740 \ub6ab\ub824\uc788\ub2e4.<\/P><P><2>\ubc88 \ucf54\ub4dc\ub294 gluDisk\ub97c \uc0ac\uc6a9\ud558\ub294\ub370 \uccab\ubc88\uc9f8 \uc778\uc790\ub294 Quadric\uc758 \uc778\uc2a4\ud134\uc2a4 \ubcc0\uc218\uc5d0 \ub300\ud55c \ud3ec\uc778\ud130\uac00 \uc628\ub2e4. \ub450\ubc88\uc9f8\ub294 \ub514\uc2a4\ud06c\uc758 \uc548\ucabd \ub6a4\ub9b0 \uc6d0\uc5d0 \ub300\ud55c \ubc18\uc9c0\ub984\uc774\uace0 \uc138\ubc88\uc9f8\ub294 \ub514\uc2a4\ud06c\uc758 \ubc14\uae53\ucabd\uc5d0 \ub300\ud55c \ubc18\uc9c0\ub984\uc774\ub2e4. \ub124\ubc88\uc9f8\ub294 Slice\uc758 \uac2f\uc218\uc774\uace0 \ub2e4\uc12f\ubc88\uc9f8\ub294 loop\uc758 \uac2f\uc218\uc774\ub2e4.<\/P><P><3>\ubc88 \ucf54\ub4dc\ub294 gluSphere\uc778\ub370 \uccab\ubc88\uc9f8 \uc778\uc790\ub294 Quadric\uc758 \uc778\uc2a4\ud134\uc2a4 \ubcc0\uc218\uc5d0 \ub300\ud55c \ud3ec\uc778\ud130\uac00 \uc628\ub2e4. \ub450\ubc88\uc9f8\ub294 \uad6c\uc758 \ubc18\uc9c0\ub984\uac12\uc774\uace0 \uc138\ubc88\uc9f8\ub294 slice\uc758 \uac2f\uc218\uc774\uace0 \ub124\ubc88\uc9f8\ub294 stacks\uc758 \uac2f\uc218\uac00 \uc628\ub2e4.<\/P><P>\uc790, \uc774\uc81c \uc2e4\ud589\ud558\ub294 \uac83\ub9cc \ub0a8\uc558\ub2e4. \uc544\ub798\ub294 \uadf8 \uc2e4\ud589 \uacb0\uacfc\uc774\ub2e4<BR><BR><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gisdeveloper.co.kr\/wp-content\/uploads\/1\/1065199249.jpg\" class=\"aligncenter\" width=\"429\" height=\"314\" alt=\"\uc0ac\uc6a9\uc790 \uc0bd\uc785 \uc774\ubbf8\uc9c0\" \/><\/p>\n<p style='text-align:center'><a href=\"http:\/\/www.gisdeveloper.co.kr\/wp-content\/uploads\/1\/1222719742.zip\"><img width='64' src='\/images\/download.svg' \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Quadrics\uac00 \ubb34\uc5c7\uc778\uc9c0 \ubd80\ud130 \uc54c\uc544\uc57c \ud558\uaca0\ub2e4. Quadrics\uc740 \uacf5\uac04\uc0c1\uc5d0 \uae30\ud558\ud559\uc801\uc778 \ubaa8\uc591\uc744 \uc0dd\uc131\ud558\ub294 \uac83\uc774\ub2e4. \uc5ec\uae30\uc11c \ub9d0\ud558\ub294 \uae30\ud558\ud559\uc801 \ubaa8\uc591\uc774\ub780 \uc6d0\ubfd4, \uc6d0\ud1b5, \uc6d0\ud310, \uad6c \ub4f1\uc744 \ub9d0\ud55c\ub2e4. \uc989 Quadrics\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc27d\uace0 \uac04\ub2e8\ud558\uac8c \uc704\uc5d0\uc11c \uc5b8\uae09\ud55c \ubb3c\uccb4\ub97c \uc0dd\uc131\ud560 \uc218 \uc788\ub2e4. \uadf8\ub807\ub2e4\uba74 \uc774\uc81c Quadrics\ub97c \uc0ac\uc6a9\ud558\uc5ec \ubb3c\uccb4\ub97c \ub9cc\ub4e4\uace0 \uc2dc\uc5f0\ud574\ubcf4\uc790 !!\uba3c\uc800 Quadrics\ub97c \uc774\uc6a9\ud558\uc5ec \ubb3c\uccb4\ub97c \ub9cc\ub4e4\uae30 \uc804\uc5d0 Quadrics\ub97c \uc0dd\uc131\ud558\uc5ec\uc57c \ud55c\ub2e4. Quadrics\ub294 \uc18d\uc131\uc744 \uac00\uc9c0\uace0 \uc788\ub294\ub370, \uadf8 \uc18d\uc131\uc774\ub780 \uadf8\ub9ac\uace0\uc790 &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/www.gisdeveloper.co.kr\/?p=35\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;[OpenGL Tutorial] Using the Quadrics&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[3],"class_list":["post-35","post","type-post","status-publish","format-standard","hentry","category-opengl","tag-opengl"],"_links":{"self":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/35","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=35"}],"version-history":[{"count":4,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/35\/revisions"}],"predecessor-version":[{"id":3832,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/35\/revisions\/3832"}],"wp:attachment":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=35"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=35"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=35"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}