<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=D3D</id>
	<title>D3D - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=D3D"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=D3D&amp;action=history"/>
	<updated>2026-05-15T00:27:05Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=D3D&amp;diff=84269&amp;oldid=prev</id>
		<title>Maintenance script: Repair batch-0001 pages from live compare</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=D3D&amp;diff=84269&amp;oldid=prev"/>
		<updated>2026-03-26T23:56:06Z</updated>

		<summary type="html">&lt;p&gt;Repair batch-0001 pages from live compare&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 23:56, 26 March 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l14&quot;&gt;Line 14:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 14:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 진행 상황 ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 진행 상황 ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== 1월 8일 ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== 1월 8일 ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/del&gt;영현&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]] &lt;/del&gt;음.. 맘에 들지 않는다. 무슨 소리인지 갈피를 잡지 못하는게 현실이다. 관련 책이라도 좀 봐야 하겠다.&amp;lt;br /&amp;gt;약간은 설명이 미흡한것 같다. 내가 모자르기 때문일수도 있지만, ㅋㅋㅋ&amp;lt;br /&amp;gt;아직까지, 예제다운 예제를 못보다. 3D object를 본적이 없음. 아직까지.. --; - 232p/602p...&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 영현 음.. 맘에 들지 않는다. 무슨 소리인지 갈피를 잡지 못하는게 현실이다. 관련 책이라도 좀 봐야 하겠다.&amp;lt;br /&amp;gt;약간은 설명이 미흡한것 같다. 내가 모자르기 때문일수도 있지만, ㅋㅋㅋ&amp;lt;br /&amp;gt;아직까지, 예제다운 예제를 못보다. 3D object를 본적이 없음. 아직까지.. --; - 232p/602p...&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[광식]] 이책 덮은지 한 20된거 같다. 되층되층 봐가지고 기억이 안난다. 니가적어논거를 보는거로 시작한다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[광식]] 이책 덮은지 한 20된거 같다. 되층되층 봐가지고 기억이 안난다. 니가적어논거를 보는거로 시작한다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== 1월 9일 ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== 1월 9일 ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* potential function에 대해서만 봤다.. 약간 쓸만한 알고리즘(?) 인것 같다. ㅋㅋㅋ&amp;lt;br /&amp;gt;다음에 나오는 PathPlan에 관한얘기는 쉬운것 같은데. 장난이 아니다.&amp;lt;br /&amp;gt;머리 아프다. - 249p/602p...&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* potential function에 대해서만 봤다.. 약간 쓸만한 알고리즘(?) 인것 같다. ㅋㅋㅋ&amp;lt;br /&amp;gt;다음에 나오는 PathPlan에 관한얘기는 쉬운것 같은데. 장난이 아니다.&amp;lt;br /&amp;gt;머리 아프다. - 249p/602p...&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 전에도 느낀거지만 이책의 D3D초보자에게는 좀 아닌거 같다. 오늘 도서관에가서 책좀 빌려야겠다 [[광식]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 전에도 느낀거지만 이책의 D3D초보자에게는 좀 아닌거 같다. 오늘 도서관에가서 책좀 빌려야겠다 [[광식]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 책비르러 간다. 3D에 관한책.. --+ 무신 책이 겜 초보자를 위한게 아닌거 같어.. --+  짱나 짱나.. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/del&gt;영현&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 책비르러 간다. 3D에 관한책.. --+ 무신 책이 겜 초보자를 위한게 아닌거 같어.. --+  짱나 짱나.. 영현&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== 1월 10일 ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== 1월 10일 ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 이런 어제 책 못빌렸다 오늘 빌려야겠다 --; [[광식]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 이런 어제 책 못빌렸다 오늘 빌려야겠다 --; [[광식]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l68&quot;&gt;Line 68:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 68:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  {&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   union // use union - 메모리를 공유하는 성분들에 이름을 지정하는데 사용.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   union // use union - 메모리를 공유하는 성분들에 이름을 지정하는데 사용.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   {     // y변수와 v&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[&lt;/del&gt;1&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]&lt;/del&gt;변수는 같은 메모리 조각을 나타낸다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   {     // y변수와 v&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;#91;&lt;/ins&gt;1&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;#93;&lt;/ins&gt;변수는 같은 메모리 조각을 나타낸다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     struct&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     struct&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     {&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;       float x, y, z; // 구조체의 이름이 정의되지 않았지 때문에 x,y,z 성분을 원자 단위로 사용.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;       float x, y, z; // 구조체의 이름이 정의되지 않았지 때문에 x,y,z 성분을 원자 단위로 사용.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     };&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     };&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     float v&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[&lt;/del&gt;3&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]&lt;/del&gt;;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     float v&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;#91;&lt;/ins&gt;3&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;#93;&lt;/ins&gt;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   }&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l164&quot;&gt;Line 164:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 164:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  	{&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  	{&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  		maxElem = maxSize;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  		maxElem = maxSize;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  		pList = new type&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[&lt;/del&gt;maxSize&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]&lt;/del&gt;;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  		pList = new type&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;#91;&lt;/ins&gt;maxSize&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;#93;&lt;/ins&gt;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  	}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  	}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l182&quot;&gt;Line 182:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 182:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  			return;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  			return;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  		pList = new type&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[&lt;/del&gt;in.maxElem&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]&lt;/del&gt;;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  		pList = new type&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;#91;&lt;/ins&gt;in.maxElem&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;#93;&lt;/ins&gt;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  		maxElem = in.maxElem;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  		maxElem = in.maxElem;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  		nElem = in.nElem;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  		nElem = in.nElem;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  		for( int i=0; i&amp;amp;lt;in.nElem; i++ )&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  		for( int i=0; i&amp;amp;lt;in.nElem; i++ )&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  		{&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  		{&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  			pList&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[&lt;/del&gt;i&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;] &lt;/del&gt;= in.pList&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[&lt;/del&gt;i&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]&lt;/del&gt;;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  			pList&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;#91;&lt;/ins&gt;i&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;#93; &lt;/ins&gt;= in.pList&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;#91;&lt;/ins&gt;i&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;#93;&lt;/ins&gt;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  		}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  		}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  	}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  	}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l193&quot;&gt;Line 193:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 193:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  	void DestroyData( )&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  	void DestroyData( )&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  	{&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  	{&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  		delete&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[] &lt;/del&gt;pList;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  		delete&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;#91;&amp;amp;#93; &lt;/ins&gt;pList;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  		pList = NULL;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  		pList = NULL;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  	}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  	}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l342&quot;&gt;Line 342:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 342:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  	{&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  	{&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  		// creature에서 obstacle까지의 vector&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  		// creature에서 obstacle까지의 vector&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  		point3 obstacleVec = m_loc - g_obstacles&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[&lt;/del&gt;i&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]&lt;/del&gt;.m_loc;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  		point3 obstacleVec = m_loc - g_obstacles&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;#91;&lt;/ins&gt;i&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;#93;&lt;/ins&gt;.m_loc;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  		// obstacle과 creature사이의 실제 거리&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  		// obstacle과 creature사이의 실제 거리&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  		float dist = obstacleVec.Mag() - g_obstacles&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[&lt;/del&gt;i&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]&lt;/del&gt;.m_rad - m_rad;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  		float dist = obstacleVec.Mag() - g_obstacles&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;#91;&lt;/ins&gt;i&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;#93;&lt;/ins&gt;.m_rad - m_rad;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  		// this is the vector pointing away from the obstacle ??&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  		// this is the vector pointing away from the obstacle ??&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l359&quot;&gt;Line 359:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 359:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;실행 파일: http://zp.cse.cau.ac.kr/~erunc0/study/d3d/potentialFunc.exe&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;실행 파일: http://zp.cse.cau.ac.kr/~erunc0/study/d3d/potentialFunc.exe&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/del&gt;장점&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]]&lt;/del&gt;&amp;#039;&amp;#039;&amp;#039; &amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;장점&amp;#039;&amp;#039;&amp;#039; &amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 야외의 경우와 같은 물리적 장애물이 드문 경우에는 잘된다.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 야외의 경우와 같은 물리적 장애물이 드문 경우에는 잘된다.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 장애물들이 스스로 움직일 수도 있다는 것.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 장애물들이 스스로 움직일 수도 있다는 것.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/del&gt;단점&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]]&lt;/del&gt;&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;단점&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 장애물들이 너무 가까이 밀집해서 붙어 있다면 그것을 빠져 나올수 없다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 장애물들이 너무 가까이 밀집해서 붙어 있다면 그것을 빠져 나올수 없다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== 경로 추적 ====&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== 경로 추적 ====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[프로젝트분류]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[프로젝트분류]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=D3D&amp;diff=83240&amp;oldid=prev</id>
		<title>Maintenance script: Repair MoniWiki formatting after migration</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=D3D&amp;diff=83240&amp;oldid=prev"/>
		<updated>2026-03-26T14:01:36Z</updated>

		<summary type="html">&lt;p&gt;Repair MoniWiki formatting after migration&lt;/p&gt;
&lt;a href=&quot;https://mediawiki.zeropage.org/index.php?title=D3D&amp;amp;diff=83240&amp;amp;oldid=31037&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=D3D&amp;diff=31037&amp;oldid=prev</id>
		<title>imported&gt;Unknown at 05:23, 7 February 2021</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=D3D&amp;diff=31037&amp;oldid=prev"/>
		<updated>2021-02-07T05:23:04Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;작성자: 김영현([[erunc0]]), 최광식([[woodpage]])&lt;br /&gt;
&amp;quot;Advanced 3D Game Programming using DirectX&amp;quot; - study.&lt;br /&gt;
----&lt;br /&gt;
__TOC__&lt;br /&gt;
GameLibrary( http://www.zeropage.org/~erunc0/study/d3d/GameLib.zip )를 만들어 가면서 책의 내용을 본다는.. 뭐뭐뭐..  &lt;br /&gt;
말만 그렇지, library부분은 대충 하는 느낌이 드는건 왜인지. &lt;br /&gt;
뭐, library부분은 api 초기화 루틴 부분정도이고, DX 도 역시 초기화 부분정도를 &lt;br /&gt;
묶어 놓은 정도이기 때문에 이해하는데 어려움은 없었다. --;; &lt;br /&gt;
Game 쪽 책을 사서 D3D를 본후, 3D를 공부하려는 마음으로 샀다. 무리없이 예제를 보는식으로 할것임.&lt;br /&gt;
== 목표 ==&lt;br /&gt;
3D를 이용한 오락 만들기. &lt;br /&gt;
구체적인건 둘이서 생각해 볼것임. &lt;br /&gt;
-- v.&lt;br /&gt;
== 진행 상황 ==&lt;br /&gt;
=== 1월 8일 ===&lt;br /&gt;
* [[영현]] 음.. 맘에 들지 않는다. 무슨 소리인지 갈피를 잡지 못하는게 현실이다. 관련 책이라도 좀 봐야 하겠다.약간은 설명이 미흡한것 같다. 내가 모자르기 때문일수도 있지만, ㅋㅋㅋ아직까지, 예제다운 예제를 못보다. 3D object를 본적이 없음. 아직까지.. --; - 232p/602p...&lt;br /&gt;
* [[광식]] 이책 덮은지 한 20된거 같다. 되층되층 봐가지고 기억이 안난다. 니가적어논거를 보는거로 시작한다.&lt;br /&gt;
=== 1월 9일 ===&lt;br /&gt;
* potential function에 대해서만 봤다.. 약간 쓸만한 알고리즘(?) 인것 같다. ㅋㅋㅋ다음에 나오는 PathPlan에 관한얘기는 쉬운것 같은데. 장난이 아니다.머리 아프다. - 249p/602p...&lt;br /&gt;
* 전에도 느낀거지만 이책의 D3D초보자에게는 좀 아닌거 같다. 오늘 도서관에가서 책좀 빌려야겠다 [[광식]]&lt;br /&gt;
* 책비르러 간다. 3D에 관한책.. --+ 무신 책이 겜 초보자를 위한게 아닌거 같어.. --+  짱나 짱나.. [[영현]]&lt;br /&gt;
=== 1월 10일 ===&lt;br /&gt;
* 이런 어제 책 못빌렸다 오늘 빌려야겠다 --; [[광식]]&lt;br /&gt;
=== 1월 11일 ===&lt;br /&gt;
* 잠시 외도. 광식이한테 빌린 책으로 3D를 공부. &lt;br /&gt;
 쿠쿠.. 열심이구나.. ^^a.. DX 공부하면 나줌 갈켜다오.. 헤헤.. 나두 지금 하구 있는거.. 시간되면 여기다(위키..) 쓸께..&lt;br /&gt;
 너네두 곧 필요해질 내용이 있을테니.. 근데 지금은 내코가 좀 석자라서.. 시간에 쫓기는 관계로.. 언젠가.. 꼭.. ^^;; - 해성&lt;br /&gt;
  오옷.. 해성이가 글을 썼다! --석천&lt;br /&gt;
&lt;br /&gt;
== Direct 3D ==&lt;br /&gt;
=== Chapter 1. ===&lt;br /&gt;
이런 종류의 책들이 다 그렇듯이, winapi를 사용한다.&lt;br /&gt;
그렇기 때문에, 초반의 한 chapter는 거의다 winapi를 사용해서 &lt;br /&gt;
&amp;quot;Hello, World!&amp;quot;를 찍는 source를 넣어 준다. --; &lt;br /&gt;
=== Chapter 2. ===&lt;br /&gt;
DX 초기화 루틴과, game loop(message loop)를 포함한 library를 실제로 만든다.&lt;br /&gt;
그리고, 예제 source 1개정도.. 여기 까지 봤음.. - 곧 update , 01.06.2002 Sun&lt;br /&gt;
...&lt;br /&gt;
슬슬 책이 짜증나려고 한다. --+ 그냥 간단하게 책에서 제공하는 library를 쓰면 chapter2는 솔직히&lt;br /&gt;
보지 않아도 될것 같다. 무슨 소리들을 하는지. 전부 초기화.. --+ 함수 설명 뿐이네. 흐미.. 그냥..&lt;br /&gt;
일반적인 3D이야기를 살것을.. Game쪽을 사서.. T-T 아무튼 보기는 다 봐야지. DX 는 할것이 정말 초기화 뿐이던가? &lt;br /&gt;
chapter 3 부터는 수학이랍니다.. --;;&lt;br /&gt;
* Chapter 2: skip. 초기화 부분정도. 횡성 수설임. 무슨 소리하는지 못알아 먹을 정도임.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;광식아 Chapter2 좀 니가 정리해라. 난 보는게 짜증나서 못해 먹겠다. 후후후. 같이 하니 이게 편하군.. 케케&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
이거 정리하는건 무리다--;&lt;br /&gt;
 추천 도서: Inside DirectX (필요로 한다면 말하시오. 전자책으로 있어요. --;;)&lt;br /&gt;
            Tricks of the Windows Game Programming Gurus : Fundamentals of 2D and 3D Game Programming. (DirectX, DirectMusic, 3D sound)&lt;br /&gt;
=== Chapter 3. 3D 수학적 기초 (50%~60%) ===&lt;br /&gt;
이 chapter는 math3D라는 library를 만드는 chapter이다&lt;br /&gt;
.. 1월 8일 현재.. 이 부분은 엄청난 변화가 요구.. --a&lt;br /&gt;
책의 내용중 모르는 것이 너무 많다. 아니, 말이 어려운것 같다. &lt;br /&gt;
==== 점 ====&lt;br /&gt;
점은 3D 그래픽에서 가장 중요한 요소랍니다. 책에서 그러데요. &lt;br /&gt;
&amp;#039;&amp;#039;- 점은 3D 공간에서의 하나의 위치이고, 벡터는 3D공간 내에서 원점으로부터 하나의 위치를 잇는 직선이다. - &amp;#039;&amp;#039; &lt;br /&gt;
vector(3D 공간상의 점이 있는 일정한 거리)의 크기 (magnitude)를 구하는 공식은 &lt;br /&gt;
    다들 알고 계시져? --;; 하하..&lt;br /&gt;
단위 벡터- 세개의 주요 축들의 방향을 나타내기 위한 벡터.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;i&amp;lt;1,0,0&amp;gt;, j&amp;lt;0,1,0&amp;gt;, k&amp;lt;0,0,1&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
i, j, k벡터의 선형 조합으로 3D내의 어떠한 점이라도 나타낼수 있다.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;a&amp;#039;&amp;#039;&amp;#039; = &amp;lt;3, 5, 2&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;a&amp;#039;&amp;#039;&amp;#039; = &amp;#039;&amp;#039;&amp;#039;3i&amp;#039;&amp;#039;&amp;#039;+&amp;#039;&amp;#039;&amp;#039;5j&amp;#039;&amp;#039;&amp;#039;+&amp;#039;&amp;#039;&amp;#039;2k&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
그리고, 이 특성으로 인해 행렬과 행렬을 표현하는 공간을 설명할 때 매우 중요시 된다.&lt;br /&gt;
==== point3 구조체 ====&lt;br /&gt;
3D점을 캡슐화 하기위한 구조체.&lt;br /&gt;
 struct point3&lt;br /&gt;
 {&lt;br /&gt;
  union // use union - 메모리를 공유하는 성분들에 이름을 지정하는데 사용.&lt;br /&gt;
  {     // y변수와 v[1]변수는 같은 메모리 조각을 나타낸다.&lt;br /&gt;
    struct&lt;br /&gt;
    {&lt;br /&gt;
      float x, y, z; // 구조체의 이름이 정의되지 않았지 때문에 x,y,z 성분을 원자 단위로 사용.&lt;br /&gt;
    };&lt;br /&gt;
    float v[3];&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  point3 () {}&lt;br /&gt;
  point3 (float X, float Y, float Z) : x(X), y(Y), z(Z) {} // 초기화 목록을 사용. (compiler가 작업을 더 잘 수행할 수 있도록 해준다더군.)&lt;br /&gt;
  // ...&lt;br /&gt;
 };&lt;br /&gt;
==== point3의 연산자와 기본적 함수 ====&lt;br /&gt;
 struct point3&lt;br /&gt;
 {&lt;br /&gt;
  ...&lt;br /&gt;
  point3 operator +(point3 const &amp;amp;amp;a, point3 const &amp;amp;amp;b);&lt;br /&gt;
  point3 operator -(point3 const &amp;amp;amp;a, point3 const &amp;amp;amp;b);&lt;br /&gt;
  point3 operator *(point3 const &amp;amp;amp;a, float const &amp;amp;amp;b);&lt;br /&gt;
  point3 operator *(float const &amp;amp;amp;a, point3 const &amp;amp;amp;b);&lt;br /&gt;
  point3 operator /(point3 const &amp;amp;amp;a, float const &amp;amp;amp;b);&lt;br /&gt;
  ...&lt;br /&gt;
 };&lt;br /&gt;
 // 좌표 할당&lt;br /&gt;
 inline void point3::Assign (float X, float Y, float Z)  &lt;br /&gt;
 {&lt;br /&gt;
  x = X; y = Y; z = Z;&lt;br /&gt;
 }&lt;br /&gt;
 // vector 값&lt;br /&gt;
 inline float point3::Mag () const&lt;br /&gt;
 {&lt;br /&gt;
  return (flaot)sqrt (x*x + y*y + z*z);&lt;br /&gt;
 }&lt;br /&gt;
 // 거리의 제곱 값&lt;br /&gt;
 inline float point3::MagSquared () const&lt;br /&gt;
 {&lt;br /&gt;
  return (x*x + y*y + z*z);&lt;br /&gt;
 }&lt;br /&gt;
 // Normalize&lt;br /&gt;
 inline void point3::Normailze ()&lt;br /&gt;
 {&lt;br /&gt;
  float foo = 1/Mag ();&lt;br /&gt;
  x *= foo; y *= foo; z *= foo;&lt;br /&gt;
 }&lt;br /&gt;
==== 벡터 동등 ====&lt;br /&gt;
float이나 double이 나타낼수 있는 부동소수점의 한계로 인해 vector끼리 동등한지 아닌지를 잘 처리하지 못한다.&lt;br /&gt;
그래서, epsilon (이 책에서는 0.001로 정의)이라는 것을 두어 그 문제를 해결한다고 한다. &lt;br /&gt;
 // point3의 등가 연산자&lt;br /&gt;
 #define EPSILON 0.001&lt;br /&gt;
 inline bool operator ==(point3 const &amp;amp;amp;a, point3 const &amp;amp;amp;b)&lt;br /&gt;
 {&lt;br /&gt;
  if (fabs (a.x - b.x) &amp;amp;lt; EPSILON)&lt;br /&gt;
  {&lt;br /&gt;
    if (fabs (a.y - b.y) &amp;amp;lt; EPSILON)&lt;br /&gt;
    {&lt;br /&gt;
      if (fabs (a.z - b.z) &amp;amp;lt; EPSILON)&lt;br /&gt;
      {&lt;br /&gt;
        return true;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  return false;&lt;br /&gt;
 }&lt;br /&gt;
==== 내적 &amp;amp; 외적 ====&lt;br /&gt;
 // 내적&lt;br /&gt;
 inline float operator *(point3 const &amp;amp;amp;a, point3 const &amp;amp;amp;b)&lt;br /&gt;
 {&lt;br /&gt;
  return a.x*b.x + a.y*b.y + a.z*b.z;&lt;br /&gt;
 }&lt;br /&gt;
 // 외적&lt;br /&gt;
 inline point3 operator ^(point3 const &amp;amp;amp;a, point3 const &amp;amp;amp;b)&lt;br /&gt;
 {&lt;br /&gt;
  return point3 ( (a.y*b.z - a.z*b.y), (a.z*b.x - a.x*b.z), (a.x*b.y - a.y*b.x) );&lt;br /&gt;
 }&lt;br /&gt;
--; 고덩학교때 배웠던 내적과 외적. 지금보니 무슨 소리인지.. ㅎㅎㅎ 그냥 적어 봤음. --;&lt;br /&gt;
==== 폴리곤 ====&lt;br /&gt;
폴리곤은 개체의 테두리를 표현하는데 사용된다.&lt;br /&gt;
* http://www.gameschool.co.kr/cyberhtm/3dPolygon.htm - 폴리곤에 관한 page&lt;br /&gt;
 template &amp;amp;lt;class type&amp;amp;gt;&lt;br /&gt;
 struct polygon &lt;br /&gt;
 {&lt;br /&gt;
 	int nElem; // number of elements in the polygon&lt;br /&gt;
 	int maxElem;&lt;br /&gt;
 &lt;br /&gt;
 	type *pList;&lt;br /&gt;
 &lt;br /&gt;
 	polygon()&lt;br /&gt;
 	{&lt;br /&gt;
 		nElem = 0;&lt;br /&gt;
 		maxElem = 0;&lt;br /&gt;
 		pList = NULL;&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	polygon( int maxSize )&lt;br /&gt;
 	{&lt;br /&gt;
 		maxElem = maxSize;&lt;br /&gt;
 		pList = new type[maxSize];&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	polygon( const polygon &amp;amp;amp;in )&lt;br /&gt;
 	{&lt;br /&gt;
 		CloneData( in );&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	~polygon()&lt;br /&gt;
 	{&lt;br /&gt;
 		DestroyData();&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	void CloneData( const polygon &amp;amp;amp;in )&lt;br /&gt;
 	{&lt;br /&gt;
 		if( !in.pList ) &lt;br /&gt;
 			return;&lt;br /&gt;
 &lt;br /&gt;
 		pList = new type[in.maxElem];&lt;br /&gt;
 		maxElem = in.maxElem;&lt;br /&gt;
 		nElem = in.nElem;&lt;br /&gt;
 		for( int i=0; i&amp;amp;lt;in.nElem; i++ )&lt;br /&gt;
 		{&lt;br /&gt;
 			pList[i] = in.pList[i];&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	void DestroyData( )&lt;br /&gt;
 	{&lt;br /&gt;
 		delete[] pList;&lt;br /&gt;
 		pList = NULL;&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	polygon&amp;amp;amp; operator=( const polygon&amp;amp;lt;type&amp;amp;gt; &amp;amp;amp;in )&lt;br /&gt;
 	{	&lt;br /&gt;
 		if( &amp;amp;amp;in != this )&lt;br /&gt;
 		{&lt;br /&gt;
 			DestroyData();&lt;br /&gt;
 &lt;br /&gt;
 			CloneData( in );&lt;br /&gt;
 		}&lt;br /&gt;
 		&lt;br /&gt;
 		return *this;&lt;br /&gt;
 	}&lt;br /&gt;
 };&lt;br /&gt;
==== 면 ====&lt;br /&gt;
3D에서 면은 2D의 선과같다. &lt;br /&gt;
면을 정의하는 식&lt;br /&gt;
    ax + by + cz + d = 0&lt;br /&gt;
삼원쌍 &amp;lt;a, b, c&amp;gt;는 면의 법선(법선: 그 면내의 모든 점들에 대해 수직인 벡터), d는 면에서 원점까지의 거리&lt;br /&gt;
위의 식을 만족하는 모든 점의 삼원쌍 &amp;lt;x, y, z&amp;gt;는 바로 면에 존재하는 모든 점들이다&lt;br /&gt;
면을 정의하는 구조체&lt;br /&gt;
 struct plane3 {&lt;br /&gt;
 &lt;br /&gt;
 	point3 n; // Normal of the plane&lt;br /&gt;
 	float d;  // Distance along the normal to the origin &lt;br /&gt;
 &lt;br /&gt;
 	plane3( float nX, float nY, float nZ, float D) : n( nX, nY, nZ ), d( D )&lt;br /&gt;
 	{&lt;br /&gt;
 		// All done.&lt;br /&gt;
 	}&lt;br /&gt;
 	plane3( const point3&amp;amp;amp; N, float D) : n( N ), d( D )&lt;br /&gt;
 	{&lt;br /&gt;
 		// All done.&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	// Construct a plane from three 3-D points&lt;br /&gt;
 	plane3( const point3&amp;amp;amp; a, const point3&amp;amp;amp; b, const point3&amp;amp;amp; c);&lt;br /&gt;
 &lt;br /&gt;
 	// Construct a plane from a normal direction and a point on the plane&lt;br /&gt;
 	plane3( const point3&amp;amp;amp; norm, const point3&amp;amp;amp; loc);&lt;br /&gt;
 &lt;br /&gt;
 	// Construct a plane from a polygon&lt;br /&gt;
 	plane3( const polygon&amp;amp;lt;point3&amp;amp;gt;&amp;amp;amp; poly );&lt;br /&gt;
 &lt;br /&gt;
 	plane3()&lt;br /&gt;
 	{&lt;br /&gt;
 		// Do nothing&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
          // Flip the orientation of the plane&lt;br /&gt;
 	void Flip();&lt;br /&gt;
 };&lt;br /&gt;
==== 변환 ====&lt;br /&gt;
3D의 위치이동이나 회전 등이 행렬로 이루어 진다는 얘기.&lt;br /&gt;
위치 이동이야 더해주고 빼주면 되는건 다 아는 사실이니.. 쩝.. --; 회전이나 알면 될것 같음. &lt;br /&gt;
...&lt;br /&gt;
회전을 돕는 세가지 표준 행렬. (Euler 회전)&lt;br /&gt;
 Rx (r) = | 1         0         0    |&lt;br /&gt;
          | 0       cos(r)    sin(r) |&lt;br /&gt;
          | 0       -sin(r)   cos(r) |&lt;br /&gt;
 &lt;br /&gt;
 Ry (r) = | cos(r)    0       -sin(r)|&lt;br /&gt;
          | 0         1         0    |&lt;br /&gt;
          | 0       sin(r)    cos(r) |&lt;br /&gt;
 &lt;br /&gt;
 Rz (r) = | cos(r)  sin(r)      0    |&lt;br /&gt;
          | -sin(r) cos(r)      0    |&lt;br /&gt;
          | 0         0         1    |&lt;br /&gt;
 &lt;br /&gt;
 ex ) v0 = &amp;amp;lt;2, 0, 0&amp;amp;gt;을 z에 관해 시계 방향으로 45도 회전&lt;br /&gt;
       v1 = Rz(45)v0&lt;br /&gt;
      v1이 v0를 z에 관해 시계 방향으로 45도 회전시킨 지점이다.&lt;br /&gt;
 &lt;br /&gt;
 // 문제점&lt;br /&gt;
 // x, y, z축으로 회전시킨 행렬들을 하나로 결합하기위한 표준 방법이 없다. // ??&lt;br /&gt;
일정한 회전을 주기위해 해야할 일은 단지 필요한 이련의 변환을 알아내고 &lt;br /&gt;
모델의 각 점에 이들 변환을 적용하는 것이다.&lt;br /&gt;
 - 특정한 점 p에 존재하는 개체를 z축을 따라 회전시키려는 경우 -&lt;br /&gt;
 v = vT(-p)   // 원점으로 위치이동&lt;br /&gt;
 v = vRz(파이/2)  // 파이.. 뭔지는 알겠지.. ㅡㅡ; &lt;br /&gt;
 v = vT(p)    // 다시 전 p로 이동.&lt;br /&gt;
but, 각점들 마다 이런 연산을 수행하려면 너무 느리다. &lt;br /&gt;
그래서 말인데, 행렬에 있어서 좋은 점은 곱하기 전에 그 점들을 결합할 수 있다는 점이다.&lt;br /&gt;
두 가지 회전, 즉, A와 B를 수행해야 할 경우 결합 법칙에 따라 다음과같이 할 수 있다.&lt;br /&gt;
 v` = (vA)B =&amp;amp;gt; v` = v(AB)    // 오!~&lt;br /&gt;
==== 축-각도 회전 ====&lt;br /&gt;
무슨 소리인지... &lt;br /&gt;
앞에서본 Euler회전의 문제점을 보안한 회전행렬.&lt;br /&gt;
  | xx(1-cos(r)) + cos (r)      yx(1-cos(r)) + z sin(r)     xz(1-cos(r)) - y sin(r)     0 |&lt;br /&gt;
  | xy(1-cos(r)) + z sin(r)     yy(1-cos(r)) + cos(r)       yz(1-cos(r)) - x sin(r)     0 |&lt;br /&gt;
  | xz(1-cos(r)) + y sin(r)     yz(1-cos(r)) + x sin(r)     zz(1-cos(r)) - cos(r)       0 |&lt;br /&gt;
  |          0                            0                            0                1 |&lt;br /&gt;
=== Chapter 4. 인공 지능 (Artificail Intelligence) ===&lt;br /&gt;
==== 출발점 ====&lt;br /&gt;
&amp;#039;&amp;#039; &lt;br /&gt;
* 어떻게 개체를 움직이고, 어떻게 돌고, 어떻게 걷느냐는 움직임에 관한문제 (locomotion or motor skills)&lt;br /&gt;
* 개체가 어떻게 장애물 및 다른 개체들을 피하면서 A에서 B로 이동할 것인가? (task generation)&lt;br /&gt;
* 실제사고, 개체들이 무엇을 할 것인지 스스로 결정하고 움직이는 능력을 이용하며 하고자 하는 바를 행할 계획을 세우는것 (acion steering)&lt;br /&gt;
&amp;#039;&amp;#039;&lt;br /&gt;
==== 조종 - about move 1 ====&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1.추적&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
간단히 적을 따라가는 것. 뭐 알고리즘 같은건 있지도 않을것 같다. &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2.탈출&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
... 할말 없음. &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;3.패턴 (기본)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
... 할말 없음. &lt;br /&gt;
==== 조종 - 2 ====&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;전위 함수&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
우리는 명벽하게 장애물 2보다는 장애물 1을 피하기를 더 원할 것이다.&lt;br /&gt;
즉, 장애물 2는 훨씬 더 멀리 떨어져 있기 때문이다.&lt;br /&gt;
             --------------&lt;br /&gt;
             | obstacle 2 |                        | goal |&lt;br /&gt;
             --------------&lt;br /&gt;
 &lt;br /&gt;
              &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        --------------&lt;br /&gt;
        | obstacle 1 |&lt;br /&gt;
        --------------&lt;br /&gt;
 &lt;br /&gt;
     |creature.|&lt;br /&gt;
우리는 이 서술을 하나의 등식으로 바꿀 수 있다. 최초 우리의 방향은 &lt;br /&gt;
목표 지점을 향한 평균화된 벡터이다(or 목표 지점의 위치에서 현재 위치를 뺀 것) &lt;br /&gt;
그리고, 각각의 장애물에 대해 곧장 도망갈 수 있도록 하는 평균 벡터를 찾아낸다. &lt;br /&gt;
이 평균 벡터를 하나의 상수로 곱한 다음 다시 장애물로부터의 거리의  &lt;br /&gt;
제곱으로 나누다. 그리고 나서는 물체가 방향 벡터로서 이용해야될 하나의 벡터를 얻는다.&lt;br /&gt;
... 흠흠. 뭔소린지. 나는 알지~ ^^ &lt;br /&gt;
공식] &lt;br /&gt;
http://zp.cse.cau.ac.kr/~erunc0/study/d3d/potential.bmp&lt;br /&gt;
 // 실제 사용 예.&lt;br /&gt;
 bool Process()&lt;br /&gt;
 {&lt;br /&gt;
 	point3 goalVec = g_goalLoc - m_loc;&lt;br /&gt;
 &lt;br /&gt;
 	if( goalVec.Mag() &amp;amp;lt; g_creatureSpeed )&lt;br /&gt;
 		return false; // goal까지 도착했다.&lt;br /&gt;
 &lt;br /&gt;
 	point3 dirVec = goalVec / goalVec.Mag();&lt;br /&gt;
 &lt;br /&gt;
 	float k = .1f; &lt;br /&gt;
 &lt;br /&gt;
 	// 각각의 obstacle과 검사&lt;br /&gt;
 	for( int i=0; i&amp;amp;lt;g_obstacles.size(); i++ )&lt;br /&gt;
 	{&lt;br /&gt;
 		// creature에서 obstacle까지의 vector&lt;br /&gt;
 		point3 obstacleVec = m_loc - g_obstacles[i].m_loc;&lt;br /&gt;
 &lt;br /&gt;
 		// obstacle과 creature사이의 실제 거리&lt;br /&gt;
 		float dist = obstacleVec.Mag() - g_obstacles[i].m_rad - m_rad;&lt;br /&gt;
 &lt;br /&gt;
 		// this is the vector pointing away from the obstacle ??&lt;br /&gt;
 		obstacleVec.Normalize(); &lt;br /&gt;
 &lt;br /&gt;
 		dirVec += obstacleVec * ( k / (dist * dist) ); // creature를 평행이동 시킬 행렬을 얻는다. 모든 obstacle을 검사 하면서...&lt;br /&gt;
 	}&lt;br /&gt;
 	dirVec.Normalize();&lt;br /&gt;
 &lt;br /&gt;
 	m_loc += g_creatureSpeed * dirVec;&lt;br /&gt;
 	return true; // ok. obstacle을 피했다.&lt;br /&gt;
 }&lt;br /&gt;
실행 파일: http://zp.cse.cau.ac.kr/~erunc0/study/d3d/potentialFunc.exe&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;[[장점]]&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
* 야외의 경우와 같은 물리적 장애물이 드문 경우에는 잘된다. &lt;br /&gt;
* 장애물들이 스스로 움직일 수도 있다는 것. &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;[[단점]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* 장애물들이 너무 가까이 밀집해서 붙어 있다면 그것을 빠져 나올수 없다.&lt;br /&gt;
==== 경로 추적 ====&lt;br /&gt;
----&lt;br /&gt;
[[프로젝트분류]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>