WPF - XDL Tutorial (piXoneer XDL Tutorial)
XDLÀÌ ÁÖ·Î »ç¿ëÇÏ´Â µ¥ÀÌÅÍ ±¸Á¶Ã¼¿¡ ´ëÇÑ È°¿ë¹ýÀ» ¼³¸íÇÕ´Ï´Ù. XVertex, XGrid, XColorTable, XGeoPoint, XAngleµî¿¡ ´ëÇØ¼ ¼³¸íÇÕ´Ï´Ù.
2019. 04.
|
1 »ç¿ë Çϱâ1.1 XDL ¿£Áø¼³Ä¡ ÇÁ·Î±×·¥À¸·Î ¹èÆ÷µÇ´Â XDL ¿£ÁøÀº Visual Studio 2010 x86 Release ¹öÀüÀ¸·Î, Visual Studio 2010 ÀÌ»óÀÇ ¹öÀü¿¡¼ »ç¿ë °¡´ÉÇÏ´Ù. ¾Æ·¡ÀÇ ¼³¸íÀº Visual Studio 2015À» ±âÁØÀ¸·Î ÇϰڴÙ.
1.2 XDLÀÇ µ¥ÀÌÅͱ¸Á¶¸¦ ÀÌ¿ëÇÑ ¿¹Á¦ ÇÁ·Î±×·¥ ¸¸µé±â1.2.1 Visual Studio 2015À» ½ÇÇàÇÑ´Ù.1.2.2 ¸Þ´º [ÆÄÀÏ]-[»õ·Î ¸¸µé±â]-[ÇÁ·ÎÁ§Æ®]¸¦ ¼±ÅÃÇÑ´Ù.
1.2.3 [»õ ÇÁ·ÎÁ§Æ®] ´ëÈ»óÀÚ¿¡¼ ¿ÞÂÊÀÇ ÅÛÇø´ â¿¡¼ ¡°Visual C#¡±À» ¼±ÅÃÇϰí, ´ëÈ»óÀÚ Áß°£ÀÇ ¸ñ·Ï¿¡¼ ¡°WPF ÀÀ¿ë ÇÁ·Î±×·¥¡±À» ¼±ÅÃÇÑ´Ù.»ç¿ëÀÚ°¡ ¿øÇÏ´Â °æ·Î¸¦ ¼±ÅÃÇÑ ´ÙÀ½ ÇÁ·ÎÁ§Æ® À̸§À» ¡°XDL_DataStructure¡± À¸·Î ÀÔ·ÂÇϰí [»õ ÇÁ·ÎÁ§Æ®] ´ëÈ»óÀÚÀÇ ¡°È®ÀΡ± ¹öưÀ» Ŭ¸¯ÇÑ´Ù.
. ÀÌ ¹®¼¿¡¼´Â ´ëÈ»óÀÚ ¿À¸¥ÂÊ ¾Æ·¡¿¡ ÀÖ´Â ¡°¼Ö·ç¼Ç¿ë µð·ºÅ͸® ¸¸µé±â¡±´Â ¼±ÅÃÇÏÁö ¾Ê°Ú´Ù. ¡°È®ÀΡ± ¹öưÀ» ´©¸£¸é ÇÁ·ÎÁ§Æ®°¡ ±âº»ÀûÀ¸·Î »ý¼ºµÇ°í, ȸ鿡 WindowÀ» µðÀÚÀÎÇÒ ¼ö Àִ ȸéÀÌ ¶á´Ù. ¸¸¾à ¾Æ·¡¿Í °°Àº Window âÀÌ »ý¼ºµÇÁö ¾ÊÀ¸¸é, [¼Ö·ç¼Ç Ž»ö±â] â¿¡¼ MainWindow.xaml¡±¸¦ ¸¶¿ì½º ´õºíŬ¸¯À» ÇÏ¿© âÀ» ¿¬´Ù.
1.2.4 ÂüÁ¶¸¦ ÅëÇØ NXDL.dll Ç׸ñÀ» Ãß°¡ÇÑ´Ù.¼Ö·ç¼Ç Ž»ö±âÀÇ ÇÁ·ÎÁ§Æ® ¾Æ·¡¿¡ ÀÖ´Â ÂüÁ¶ ¾ÆÀÌÅÛÀÇ ¸¶¿ì½º ¿À¸¥ÂÊ ¹öưÀ» Ŭ¸¯ÇÏ¿© »ý¼ºµÇ´Â ÆË¾÷¸Þ´º¿¡ ¡°ÂüÁ¶Ãß°¡¡± ¸Þ´º¸¦ ¼±ÅÃÇÑ´Ù.
¸Þ´º¸¦ ¼±ÅÃÇÏ¸é ¾Æ·¡¿Í °°ÀÌ [ÂüÁ¶ °ü¸®ÀÚ] ´ëÈ»óÀÚ°¡ ³ªÅ¸³ª¸ç, ´ëÈ»óÀÚ ¾Æ·¡ÂÊ¿¡ ÀÖ´Â ¡°Ã£¾Æº¸±â¡± ¹öưÀ» Ŭ¸¯ÇÑ´Ù.
¡°C:\Pixoneer\XDL1.2\bin\NXDL.dll¡± °æ·Î·Î À̵¿ÇÑ ÈÄ ÆÄÀÏÀ» ¼±ÅÃÇÑ´Ù. ¡°Ãß°¡¡± ¸¦ Ŭ¸¯Çϰí, [ÂüÁ¶ °ü¸®ÀÚ] ´ëÈ»óÀÚÀÇ ¡°È®ÀΡ± ¹öưÀ» Ŭ¸¯ÇÑ´Ù. [ÂüÁ¶] ¿¡ ¡°NXDL¡±°¡ Ãß°¡µÈ °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù.
1.2.5 ÇÁ·Î±×·¥ Á¾·á ½Ã ¸Þ¸ð¸®¸¦ ÇØÁ¦¸¦ À§ÇÑ Äڵ带 WindowâÀÌ ´ÝÈ÷´Â À̺¥Æ®¿¡ Ãß°¡ÇÑ´Ù.MainWindow.xaml â¿¡¼ WindowÀ» ¼±ÅÃÇÑ ÈÄ [¼Ó¼º] â¿¡¼ ¡°À̺¥Æ®¡± ¸Þ´º¸¦ Ŭ¸¯Çϰí À̺¥Æ® ¸ñ·Ï Áß ¡°Closed¡±¸¦ ¼±ÅÃÇÑ µÚ ¸¶¿ì½º ´õºíŬ¸¯À» ÇÏ¿© ÇØ´çÀ̺¥Æ®¸¦ Ãß°¡ÇÑ´Ù.
¾Æ·¡ÀÇ ±½Àº ±Û¾¾Ã³·³ Window_Closed ÇÔ¼ö¿¡ Äڵ带 Ãß°¡ÇÑ´Ù.
1.2.6 ´ÙÀ½°ú °°ÀÌ NXDL¿¡ ´ëÇÏ¿© ÂüÁ¶¸¦ ¼³Á¤ÇÑ´Ù.
1.2.7 ´ÙÀ½°ú °°ÀÌ µµ±¸»óÀÚ¿¡¼ ¹öưÀ» Windowâ¿¡ ¿Ã·Á µðÀÚÀÎÇÑ´Ù.
[F5]۸¦ ´·¯ ½ÇÇàÇÏ¸é ´ÙÀ½°ú °°Àº ȸéÀÌ ¶á´Ù.
1.3 XAngleȰ¿ë ¿¹Á¦1.3.1 XAngleÀ» ´õºí Ŭ¸¯ÇÏ¿© ÇÔ¼ö¸¦ ÀÚµ¿»ý¼ºÇÑ´Ù.
1.3.2 buttonXAngle_Click ÇÔ¼ö¿¡ ´ÙÀ½°ú °°ÀÌ Äڵ带 ÀÔ·ÂÇÑ´Ù.1.3.3 ÄÄÆÄÀÏÇϰí ÇÁ·Î±×·¥À» ½ÇÇàÇÏ¿© XAngle¹öưÀ» Ŭ¸¯ÇÑ´Ù.
1.3.4 Ãâ·Ââ¿¡ °ªÀÌ ÇÁ¸°Æ®µÊÀ» È®ÀÎÇÑ´Ù.¶óµð¾È °ªÀÎ 0.634345152625095°ª°ú Degree°ªÀÎ 36.34530°ªÀÌ µ¿ÀÏÇϹǷΠEqualÀÇ °á°ú°ªÀ» ³ªÅ¸³»¸ç angle1ÀÇ °´Ã¼·ÎºÎÅÍ Degree, DMS, Radian°ªÀ» ÇÁ¸°Æ®ÇÑ´Ù.
1.4 XVertex2i Ȱ¿ë ¿¹Á¦1.4.1 XVertex2iÀ» ´õºí Ŭ¸¯ÇÏ¿© ÇÔ¼ö¸¦ ÀÚµ¿»ý¼ºÇÑ´Ù.
1.4.2 buttonXVertex2i_Click ÇÔ¼ö¿¡ ´ÙÀ½°ú °°ÀÌ Äڵ带 ÀÔ·ÂÇÑ´Ù.1.4.3 ÄÄÆÄÀÏÇϰí ÇÁ·Î±×·¥À» ½ÇÇàÇÏ¿© XVertex2i¹öưÀ» Ŭ¸¯ÇÑ´Ù.
1.4.4 Ãâ·Ââ¿¡ °ªÀÌ ÇÁ¸°Æ®µÊÀ» È®ÀÎÇÑ´Ù.Ãâ·Ââ¿¡ XVertex2i°´Ã¼¸¦ ÀÌ¿ëÇÑ °´Ã¼ÀÇ »ý¼º°ú °´Ã¼¸¦ ÀÌ¿ëÇÑ µ¡¼À, »¬¼À, Dot Product, NormÀÇ ¿¬»êÀ» ¼öÇàÇÏ´Â °á°ú¸¦ º¸¿©ÁØ´Ù.
1.5 XVertex2d Ȱ¿ë ¿¹Á¦
1.5.1 XVertex2dÀ» ´õºí Ŭ¸¯ÇÏ¿© ÇÔ¼ö¸¦ ÀÚµ¿»ý¼ºÇÑ´Ù.
1.5.2 buttonXVertex2d_Click ÇÔ¼ö¿¡ ´ÙÀ½°ú °°ÀÌ Äڵ带 ÀÔ·ÂÇÑ´Ù.
1.5.3 ÄÄÆÄÀÏÇϰí ÇÁ·Î±×·¥À» ½ÇÇàÇÏ¿© XVertex2d¹öưÀ» Ŭ¸¯ÇÑ´Ù.
1.5.4 Ãâ·Ââ¿¡ °ªÀÌ ÇÁ¸°Æ®µÊÀ» È®ÀÎÇÑ´Ù.Ãâ·Ââ¿¡ XVertex2d°´Ã¼¸¦ ÀÌ¿ëÇÑ °´Ã¼ÀÇ »ý¼º°ú °´Ã¼¸¦ ÀÌ¿ëÇÑ µ¡¼À, »¬¼À, Dot Product, NormÀÇ ¿¬»êÀ» ¼öÇàÇÏ´Â °á°ú¸¦ º¸¿©ÁØ´Ù.
1.6 XVertex3d Ȱ¿ë ¿¹Á¦
1.6.1 XVertex3dÀ» ´õºí Ŭ¸¯ÇÏ¿© ÇÔ¼ö¸¦ ÀÚµ¿»ý¼ºÇÑ´Ù.
1.6.2 ButtonXVertex3d_Click ÇÔ¼ö¿¡ ´ÙÀ½°ú °°ÀÌ Äڵ带 ÀÔ·ÂÇÑ´Ù.1.6.3 ÄÄÆÄÀÏÇϰí ÇÁ·Î±×·¥À» ½ÇÇàÇÏ¿© XVertex3d¹öưÀ» Ŭ¸¯ÇÑ´Ù.
1.6.4 Ãâ·Ââ¿¡ °ªÀÌ ÇÁ¸°Æ®µÊÀ» È®ÀÎÇÑ´Ù.Ãâ·Ââ¿¡ XVertex3d°´Ã¼¸¦ ÀÌ¿ëÇÑ °´Ã¼ÀÇ »ý¼º°ú °´Ã¼¸¦ ÀÌ¿ëÇÑ µ¡¼À, »¬¼À, Dot Product, NormÀÇ ¿¬»êÀ» ¼öÇàÇÏ´Â °á°ú¸¦ º¸¿©ÁØ´Ù.
1.7 XVertex4d Ȱ¿ë ¿¹Á¦
1.7.1 XVertex4dÀ» ´õºí Ŭ¸¯ÇÏ¿© ÇÔ¼ö¸¦ ÀÚµ¿»ý¼ºÇÑ´Ù.
1.7.2 ButtonXVertex4d_Click ÇÔ¼ö¿¡ ´ÙÀ½°ú °°ÀÌ Äڵ带 ÀÔ·ÂÇÑ´Ù.1.7.3 ÄÄÆÄÀÏÇϰí ÇÁ·Î±×·¥À» ½ÇÇàÇÏ¿© XVertex4d¹öưÀ» Ŭ¸¯ÇÑ´Ù.
1.7.4 Ãâ·Ââ¿¡ °ªÀÌ ÇÁ¸°Æ®µÊÀ» È®ÀÎÇÑ´Ù.Ãâ·Ââ¿¡ XVertex4d°´Ã¼¸¦ ÀÌ¿ëÇÑ °´Ã¼ÀÇ »ý¼º°ú °´Ã¼¸¦ ÀÌ¿ëÇÑ µ¡¼À, »¬¼À, NormÀÇ ¿¬»ê, IsEqual ÇÔ¼ö¸¦ ¼öÇàÇÏ´Â °á°ú¸¦ º¸¿©ÁØ´Ù.
1.8 XGeoPoint Ȱ¿ë ¿¹Á¦
1.8.1 XGeoPointÀ» ´õºíŬ¸¯ÇÏ¿© ÇÔ¼ö¸¦ ÀÚµ¿»ý¼ºÇÑ´Ù.
1.8.2 ButtonXGeoPoint_Click ÇÔ¼ö¿¡ ´ÙÀ½°ú °°ÀÌ Äڵ带 ÀÔ·ÂÇÑ´Ù.Degree´ÜÀ§·Î ÀÔ·ÂÇÑ °´Ã¼¿Í Radian°ªÀ¸·Î ÀÔ·ÂÇÑ °´Ã¼°¡ µ¿ÀÏÇÑÁö ¿©ºÎ¸¦ È®ÀÎÇϰí XGeoPoint·ÎºÎÅÍ ECEFÁÂÇ¥°ªÀ» XVertex3d·Î º¯È¯ÇÒ ¼ö ÀÖ´Ù. ¶ÇÇÑ ECEF°ªÀ» XGeoPoint·Î º¯È¯ÇÏ¿© ±âÁ¸ ÀԷ°ª°ú µ¿ÀÏÇÑÁö ¿©ºÎ¸¦ È®ÀÎÇÒ ¼ö ÀÖ´Ù. 1.8.3 ÄÄÆÄÀÏÇϰí ÇÁ·Î±×·¥À» ½ÇÇàÇÏ¿© XGeoPoint¹öưÀ» Ŭ¸¯ÇÑ´Ù.
1.8.4 Ãâ·Ââ¿¡ °ªÀÌ ÇÁ¸°Æ®µÊÀ» È®ÀÎÇÑ´Ù.Ãâ·Ââ¿¡ XGeoPoint°´Ã¼¸¦ ÀÌ¿ëÇÑ ´Ù¾çÇÑ ÇüÅ·ÎÀÇ º¯È¯À» ¼öÇàÇÏ°í µ¿ÀÏÇÑÁö ¿©ºÎ¸¦ È®ÀÎÇÒ ¼ö ÀÖ´Ù.
1.9 XColorTable Ȱ¿ë ¿¹Á¦
1.9.1 XColorTableÀ» ´õºí Ŭ¸¯ÇÏ¿© ÇÔ¼ö¸¦ ÀÚµ¿»ý¼ºÇÑ´Ù.
1.9.2 ButtonXColorTable_Click ÇÔ¼ö¿¡ ´ÙÀ½°ú °°ÀÌ Äڵ带 ÀÔ·ÂÇÑ´Ù.1.9.3 ÄÄÆÄÀÏÇϰí ÇÁ·Î±×·¥À» ½ÇÇàÇÏ¿© XColorTable¹öưÀ» Ŭ¸¯ÇÑ´Ù.
1.9.4 Ãâ·Ââ¿¡ °ªÀÌ ÇÁ¸°Æ®µÊÀ» È®ÀÎÇÑ´Ù.
1.10 XGrid Ȱ¿ë ¿¹Á¦
1.10.1 XGridÀ» ´õºí Ŭ¸¯ÇÏ¿© ÇÔ¼ö¸¦ ÀÚµ¿»ý¼ºÇÑ´Ù.
1.10.2 ButtonXGrid_Click ÇÔ¼ö¿¡ ´ÙÀ½°ú °°ÀÌ Äڵ带 ÀÔ·ÂÇÑ´Ù.1.10.3 ÄÄÆÄÀÏÇϰí ÇÁ·Î±×·¥À» ½ÇÇàÇÏ¿© XGrid¹öưÀ» Ŭ¸¯ÇÑ´Ù.
1.10.4 Ãâ·Ââ¿¡ °ªÀÌ ÇÁ¸°Æ®µÊÀ» È®ÀÎÇÑ´Ù.
|