﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-C++ Programmer's Cookbook-随笔分类-DirectX</title><link>http://www.cppblog.com/mzty/category/1502.html</link><description>&lt;br/&gt;  
&lt;br/&gt;
&lt;a href = "http://www.cppblog.com/mzty/archive/2007/03/02/19109.html"&gt;&lt;font size = 5 color ="#00FFFF"&gt;{C++ 基础}&lt;font/&gt;&lt;/a&gt;

&lt;a href = "http://www.cppblog.com/mzty/archive/2007/08/13/29922.html"&gt;&lt;font size = 5 color ="#00FFFF"&gt;{C++ 高级}&lt;font/&gt;&lt;/a&gt;

&lt;a href = "http://www.cppblog.com/mzty/archive/2007/04/16/22064.html"&gt;&lt;font size = 5 color ="#00FFFF"&gt;{C#界面，C++核心算法}&lt;font/&gt;&lt;/a&gt;

&lt;a href = "http://www.cppblog.com/mzty/archive/2007/03/04/19163.html"&gt;&lt;font size = 5 color ="#00FFFF"&gt;{设计模式}&lt;font/&gt;&lt;/a&gt;

&lt;a href = "
http://www.cppblog.com/mzty/archive/2007/03/04/19167.html"&gt;&lt;font size = 5 color ="#FF0000"&gt;{C#基础}&lt;font/&gt;&lt;/a&gt;





</description><language>zh-cn</language><lastBuildDate>Tue, 20 May 2008 15:11:49 GMT</lastBuildDate><pubDate>Tue, 20 May 2008 15:11:49 GMT</pubDate><ttl>60</ttl><item><title>纹理+VertexElement（二）</title><link>http://www.cppblog.com/mzty/archive/2007/11/09/36236.html</link><dc:creator>梦在天涯</dc:creator><author>梦在天涯</author><pubDate>Fri, 09 Nov 2007 10:01:00 GMT</pubDate><guid>http://www.cppblog.com/mzty/archive/2007/11/09/36236.html</guid><wfw:comment>http://www.cppblog.com/mzty/comments/36236.html</wfw:comment><comments>http://www.cppblog.com/mzty/archive/2007/11/09/36236.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/mzty/comments/commentRss/36236.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mzty/services/trackbacks/36236.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 代码：//------------------------------------------------------------------------------//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Name:&nbsp;dx9cs_multiple_vertex_buffers.cs//&n...&nbsp;&nbsp;<a href='http://www.cppblog.com/mzty/archive/2007/11/09/36236.html'>阅读全文</a><img src ="http://www.cppblog.com/mzty/aggbug/36236.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/mzty/" target="_blank">梦在天涯</a> 2007-11-09 18:01 <a href="http://www.cppblog.com/mzty/archive/2007/11/09/36236.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Manged Direct3d基本框架+Mesh的使用（一）</title><link>http://www.cppblog.com/mzty/archive/2007/11/09/36234.html</link><dc:creator>梦在天涯</dc:creator><author>梦在天涯</author><pubDate>Fri, 09 Nov 2007 09:34:00 GMT</pubDate><guid>http://www.cppblog.com/mzty/archive/2007/11/09/36234.html</guid><wfw:comment>http://www.cppblog.com/mzty/comments/36234.html</wfw:comment><comments>http://www.cppblog.com/mzty/archive/2007/11/09/36234.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/mzty/comments/commentRss/36234.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mzty/services/trackbacks/36234.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 代码：using&nbsp;System;using&nbsp;System.Collections.Generic;using&nbsp;System.ComponentModel;using&nbsp;System.Data;using&nbsp;System.Drawing;using&nbsp;System.Text;using&nbsp;System.Windows.Forms;us...&nbsp;&nbsp;<a href='http://www.cppblog.com/mzty/archive/2007/11/09/36234.html'>阅读全文</a><img src ="http://www.cppblog.com/mzty/aggbug/36234.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/mzty/" target="_blank">梦在天涯</a> 2007-11-09 17:34 <a href="http://www.cppblog.com/mzty/archive/2007/11/09/36234.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>为程序增加简单的声音提示(.net封装API --PlaySound())</title><link>http://www.cppblog.com/mzty/archive/2006/07/06/9490.html</link><dc:creator>梦在天涯</dc:creator><author>梦在天涯</author><pubDate>Thu, 06 Jul 2006 08:40:00 GMT</pubDate><guid>http://www.cppblog.com/mzty/archive/2006/07/06/9490.html</guid><wfw:comment>http://www.cppblog.com/mzty/comments/9490.html</wfw:comment><comments>http://www.cppblog.com/mzty/archive/2006/07/06/9490.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/mzty/comments/commentRss/9490.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mzty/services/trackbacks/9490.html</trackback:ping><description><![CDATA[
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />                <br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />            <br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">using</span>
				<span style="COLOR: #000000"> System;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">using</span>
				<span style="COLOR: #000000"> System.Runtime.InteropServices;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">namespace</span>
				<span style="COLOR: #000000"> tonysound <br /><img id="Codehighlighter1_84_1074_Open_Image" onclick="this.style.display='none'; Codehighlighter1_84_1074_Open_Text.style.display='none'; Codehighlighter1_84_1074_Closed_Image.style.display='inline'; Codehighlighter1_84_1074_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_84_1074_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_84_1074_Closed_Text.style.display='none'; Codehighlighter1_84_1074_Open_Image.style.display='inline'; Codehighlighter1_84_1074_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span>
				<span id="Codehighlighter1_84_1074_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
						<img src="http://www.cppblog.com/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_84_1074_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">public</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #0000ff">class</span>
						<span style="COLOR: #000000"> Sound <br /><img id="Codehighlighter1_108_478_Open_Image" onclick="this.style.display='none'; Codehighlighter1_108_478_Open_Text.style.display='none'; Codehighlighter1_108_478_Closed_Image.style.display='inline'; Codehighlighter1_108_478_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_108_478_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_108_478_Closed_Text.style.display='none'; Codehighlighter1_108_478_Open_Image.style.display='inline'; Codehighlighter1_108_478_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span>
						<span id="Codehighlighter1_108_478_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.cppblog.com/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_108_478_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
								<span style="COLOR: #0000ff">public</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #0000ff">static</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #0000ff">void</span>
								<span style="COLOR: #000000"> Play( </span>
								<span style="COLOR: #0000ff">string</span>
								<span style="COLOR: #000000"> strFileName, PlaySoundFlags soundFlags) <br /><img id="Codehighlighter1_187_315_Open_Image" onclick="this.style.display='none'; Codehighlighter1_187_315_Open_Text.style.display='none'; Codehighlighter1_187_315_Closed_Image.style.display='inline'; Codehighlighter1_187_315_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_187_315_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_187_315_Closed_Text.style.display='none'; Codehighlighter1_187_315_Open_Image.style.display='inline'; Codehighlighter1_187_315_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span>
								<span id="Codehighlighter1_187_315_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
										<img src="http://www.cppblog.com/images/dot.gif" />
								</span>
								<span id="Codehighlighter1_187_315_Open_Text">
										<span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            PlaySound( strFileName, IntPtr.Zero, soundFlags);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            </span>
										<span style="COLOR: #008000">//</span>
										<span style="COLOR: #008000"> passes to Playsound the filename and a pointer<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            </span>
										<span style="COLOR: #008000">//</span>
										<span style="COLOR: #008000"> to the Flag</span>
										<span style="COLOR: #008000">
												<br />
												<img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />
										</span>
										<span style="COLOR: #000000">        }</span>
								</span>
								<span style="COLOR: #000000">
										<br />
										<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />
										<br />
										<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        [DllImport(</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">winmm.dll</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">)] </span>
								<span style="COLOR: #008000">//</span>
								<span style="COLOR: #008000">inports the winmm.dll used for sound</span>
								<span style="COLOR: #008000">
										<br />
										<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />
								</span>
								<span style="COLOR: #000000">        </span>
								<span style="COLOR: #0000ff">private</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #0000ff">static</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #0000ff">extern</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #0000ff">bool</span>
								<span style="COLOR: #000000"> PlaySound( </span>
								<span style="COLOR: #0000ff">string</span>
								<span style="COLOR: #000000"> szSound, IntPtr hMod, PlaySoundFlags flags );<br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />
								<br />
								<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    [Flags] </span>
						<span style="COLOR: #008000">//</span>
						<span style="COLOR: #008000">enumeration treated as a bit field or set of flags</span>
						<span style="COLOR: #008000">
								<br />
								<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />
						</span>
						<span style="COLOR: #000000">    </span>
						<span style="COLOR: #0000ff">public</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #0000ff">enum</span>
						<span style="COLOR: #000000"> PlaySoundFlags: </span>
						<span style="COLOR: #0000ff">int</span>
						<span style="COLOR: #000000"> <br /><img id="Codehighlighter1_578_1071_Open_Image" onclick="this.style.display='none'; Codehighlighter1_578_1071_Open_Text.style.display='none'; Codehighlighter1_578_1071_Closed_Image.style.display='inline'; Codehighlighter1_578_1071_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_578_1071_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_578_1071_Closed_Text.style.display='none'; Codehighlighter1_578_1071_Open_Image.style.display='inline'; Codehighlighter1_578_1071_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span>
						<span id="Codehighlighter1_578_1071_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.cppblog.com/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_578_1071_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img id="Codehighlighter1_602_635_Open_Image" onclick="this.style.display='none'; Codehighlighter1_602_635_Open_Text.style.display='none'; Codehighlighter1_602_635_Closed_Image.style.display='inline'; Codehighlighter1_602_635_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_602_635_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_602_635_Closed_Text.style.display='none'; Codehighlighter1_602_635_Open_Image.style.display='inline'; Codehighlighter1_602_635_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        SND_SYNC </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">0x0000</span>
								<span style="COLOR: #000000">, </span>
								<span id="Codehighlighter1_602_635_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**/</span>
								<span id="Codehighlighter1_602_635_Open_Text">
										<span style="COLOR: #008000">/*</span>
										<span style="COLOR: #008000"> play synchronously (default) </span>
										<span style="COLOR: #008000">*/</span>
								</span>
								<span style="COLOR: #000000">
										<br />
										<img id="Codehighlighter1_659_683_Open_Image" onclick="this.style.display='none'; Codehighlighter1_659_683_Open_Text.style.display='none'; Codehighlighter1_659_683_Closed_Image.style.display='inline'; Codehighlighter1_659_683_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
										<img id="Codehighlighter1_659_683_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_659_683_Closed_Text.style.display='none'; Codehighlighter1_659_683_Open_Image.style.display='inline'; Codehighlighter1_659_683_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        SND_ASYNC </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">0x0001</span>
								<span style="COLOR: #000000">, </span>
								<span id="Codehighlighter1_659_683_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**/</span>
								<span id="Codehighlighter1_659_683_Open_Text">
										<span style="COLOR: #008000">/*</span>
										<span style="COLOR: #008000"> play asynchronously </span>
										<span style="COLOR: #008000">*/</span>
								</span>
								<span style="COLOR: #000000">
										<br />
										<img id="Codehighlighter1_711_752_Open_Image" onclick="this.style.display='none'; Codehighlighter1_711_752_Open_Text.style.display='none'; Codehighlighter1_711_752_Closed_Image.style.display='inline'; Codehighlighter1_711_752_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
										<img id="Codehighlighter1_711_752_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_711_752_Closed_Text.style.display='none'; Codehighlighter1_711_752_Open_Image.style.display='inline'; Codehighlighter1_711_752_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        SND_NODEFAULT </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">0x0002</span>
								<span style="COLOR: #000000">, </span>
								<span id="Codehighlighter1_711_752_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**/</span>
								<span id="Codehighlighter1_711_752_Open_Text">
										<span style="COLOR: #008000">/*</span>
										<span style="COLOR: #008000"> silence (!default) if sound notfound </span>
										<span style="COLOR: #008000">*/</span>
								</span>
								<span style="COLOR: #000000">
										<br />
										<img id="Codehighlighter1_775_817_Open_Image" onclick="this.style.display='none'; Codehighlighter1_775_817_Open_Text.style.display='none'; Codehighlighter1_775_817_Closed_Image.style.display='inline'; Codehighlighter1_775_817_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
										<img id="Codehighlighter1_775_817_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_775_817_Closed_Text.style.display='none'; Codehighlighter1_775_817_Open_Image.style.display='inline'; Codehighlighter1_775_817_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        SND_LOOP </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">0x0008</span>
								<span style="COLOR: #000000">, </span>
								<span id="Codehighlighter1_775_817_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**/</span>
								<span id="Codehighlighter1_775_817_Open_Text">
										<span style="COLOR: #008000">/*</span>
										<span style="COLOR: #008000"> loop the sound until nextsndPlaySound </span>
										<span style="COLOR: #008000">*/</span>
								</span>
								<span style="COLOR: #000000">
										<br />
										<img id="Codehighlighter1_842_884_Open_Image" onclick="this.style.display='none'; Codehighlighter1_842_884_Open_Text.style.display='none'; Codehighlighter1_842_884_Closed_Image.style.display='inline'; Codehighlighter1_842_884_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
										<img id="Codehighlighter1_842_884_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_842_884_Closed_Text.style.display='none'; Codehighlighter1_842_884_Open_Image.style.display='inline'; Codehighlighter1_842_884_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        SND_NOSTOP </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">0x0010</span>
								<span style="COLOR: #000000">, </span>
								<span id="Codehighlighter1_842_884_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**/</span>
								<span id="Codehighlighter1_842_884_Open_Text">
										<span style="COLOR: #008000">/*</span>
										<span style="COLOR: #008000"> don't stop any currently playingsound </span>
										<span style="COLOR: #008000">*/</span>
								</span>
								<span style="COLOR: #000000">
										<br />
										<img id="Codehighlighter1_913_950_Open_Image" onclick="this.style.display='none'; Codehighlighter1_913_950_Open_Text.style.display='none'; Codehighlighter1_913_950_Closed_Image.style.display='inline'; Codehighlighter1_913_950_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
										<img id="Codehighlighter1_913_950_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_913_950_Closed_Text.style.display='none'; Codehighlighter1_913_950_Open_Image.style.display='inline'; Codehighlighter1_913_950_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        SND_NOWAIT </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">0x00002000</span>
								<span style="COLOR: #000000">, </span>
								<span id="Codehighlighter1_913_950_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**/</span>
								<span id="Codehighlighter1_913_950_Open_Text">
										<span style="COLOR: #008000">/*</span>
										<span style="COLOR: #008000"> don't wait if the driver is busy </span>
										<span style="COLOR: #008000">*/</span>
								</span>
								<span style="COLOR: #000000">
										<br />
										<img id="Codehighlighter1_981_1003_Open_Image" onclick="this.style.display='none'; Codehighlighter1_981_1003_Open_Text.style.display='none'; Codehighlighter1_981_1003_Closed_Image.style.display='inline'; Codehighlighter1_981_1003_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
										<img id="Codehighlighter1_981_1003_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_981_1003_Closed_Text.style.display='none'; Codehighlighter1_981_1003_Open_Image.style.display='inline'; Codehighlighter1_981_1003_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        SND_FILENAME </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">0x00020000</span>
								<span style="COLOR: #000000">, </span>
								<span id="Codehighlighter1_981_1003_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**/</span>
								<span id="Codehighlighter1_981_1003_Open_Text">
										<span style="COLOR: #008000">/*</span>
										<span style="COLOR: #008000"> name is file name </span>
										<span style="COLOR: #008000">*/</span>
								</span>
								<span style="COLOR: #000000">
										<br />
										<img id="Codehighlighter1_1033_1067_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1033_1067_Open_Text.style.display='none'; Codehighlighter1_1033_1067_Closed_Image.style.display='inline'; Codehighlighter1_1033_1067_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
										<img id="Codehighlighter1_1033_1067_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1033_1067_Closed_Text.style.display='none'; Codehighlighter1_1033_1067_Open_Image.style.display='inline'; Codehighlighter1_1033_1067_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        SND_RESOURCE </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">0x00040004</span>
								<span style="COLOR: #000000"> </span>
								<span id="Codehighlighter1_1033_1067_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**/</span>
								<span id="Codehighlighter1_1033_1067_Open_Text">
										<span style="COLOR: #008000">/*</span>
										<span style="COLOR: #008000"> name is resource name or atom </span>
										<span style="COLOR: #008000">*/</span>
								</span>
								<span style="COLOR: #000000"> <br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span>
						</span>
						<span style="COLOR: #000000"> <br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
		</div>特点就是简单小巧,只能在windows上用啊.<img src ="http://www.cppblog.com/mzty/aggbug/9490.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/mzty/" target="_blank">梦在天涯</a> 2006-07-06 16:40 <a href="http://www.cppblog.com/mzty/archive/2006/07/06/9490.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Managed directx 检查硬件支持和实现全屏显示</title><link>http://www.cppblog.com/mzty/archive/2006/06/22/8839.html</link><dc:creator>梦在天涯</dc:creator><author>梦在天涯</author><pubDate>Thu, 22 Jun 2006 08:08:00 GMT</pubDate><guid>http://www.cppblog.com/mzty/archive/2006/06/22/8839.html</guid><wfw:comment>http://www.cppblog.com/mzty/comments/8839.html</wfw:comment><comments>http://www.cppblog.com/mzty/archive/2006/06/22/8839.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/mzty/comments/commentRss/8839.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mzty/services/trackbacks/8839.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: c#代码://-----------------------------------------------------------------------------//           Name: dx9cs_fullscreen.cs//         Author: Kevin Harris//  Last Modified: 06/15/05//    Description: T...&nbsp;&nbsp;<a href='http://www.cppblog.com/mzty/archive/2006/06/22/8839.html'>阅读全文</a><img src ="http://www.cppblog.com/mzty/aggbug/8839.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/mzty/" target="_blank">梦在天涯</a> 2006-06-22 16:08 <a href="http://www.cppblog.com/mzty/archive/2006/06/22/8839.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>managed directx 实现太阳系的模拟</title><link>http://www.cppblog.com/mzty/archive/2006/06/22/8837.html</link><dc:creator>梦在天涯</dc:creator><author>梦在天涯</author><pubDate>Thu, 22 Jun 2006 07:39:00 GMT</pubDate><guid>http://www.cppblog.com/mzty/archive/2006/06/22/8837.html</guid><wfw:comment>http://www.cppblog.com/mzty/comments/8837.html</wfw:comment><comments>http://www.cppblog.com/mzty/archive/2006/06/22/8837.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/mzty/comments/commentRss/8837.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mzty/services/trackbacks/8837.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: c#代码://------------------------------------------------------------------------------//           Name: dx9cs_transforms.cs//         Author: Kevin Harris//  Last Modified: 06/28/05//    Description: ...&nbsp;&nbsp;<a href='http://www.cppblog.com/mzty/archive/2006/06/22/8837.html'>阅读全文</a><img src ="http://www.cppblog.com/mzty/aggbug/8837.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/mzty/" target="_blank">梦在天涯</a> 2006-06-22 15:39 <a href="http://www.cppblog.com/mzty/archive/2006/06/22/8837.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>投影变换</title><link>http://www.cppblog.com/mzty/archive/2006/06/13/8495.html</link><dc:creator>梦在天涯</dc:creator><author>梦在天涯</author><pubDate>Tue, 13 Jun 2006 06:33:00 GMT</pubDate><guid>http://www.cppblog.com/mzty/archive/2006/06/13/8495.html</guid><wfw:comment>http://www.cppblog.com/mzty/comments/8495.html</wfw:comment><comments>http://www.cppblog.com/mzty/archive/2006/06/13/8495.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/mzty/comments/commentRss/8495.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mzty/services/trackbacks/8495.html</trackback:ping><description><![CDATA[
		<font face="黑体" color="#0000ff">投影变换分类</font>
		<font face="宋体" size="3">
				<p>    把三维物体变为二维图形表示的过程称为<font color="#800000"><a name="1">投影变换</a></font>。</p>
				<p align="justify">投影变换的分类情况如下表所示：</p>
				<p align="justify">
						<img height="322" src="http://jpkc.swjtu.edu.cn/C15/imagination/jisuanjituxing/Chapter6/CG_Gif_6_014.gif" width="417" border="0" />
						<br />
						<br />
						<br />
						<a name="2">
								<font face="黑体" color="#0000ff">世界坐标与观察坐标</font>
						</a>
						<font face="宋体" size="3">
						</font>
				</p>
				<p style="LINE-HEIGHT: 200%">    物体在空间的表示是用世界坐标来表示，但是当人们去观察物体时，坐标系就转化为观察坐标系。这就需要在两个坐标系之间进行转换，可以通过平移、旋转实现从世界坐标到观察坐标的变换。</p>
				<p align="center">
						<img height="173" src="http://jpkc.swjtu.edu.cn/C15/imagination/jisuanjituxing/Chapter6/CG_Gif_6_015.gif" width="556" border="0" />
				</p>
				<p align="justify">平移后，用单位矢量法得到旋转矩阵：</p>
		</font>
		<ol type="A">
				<li>
						<p style="LINE-HEIGHT: 200%">
								<font face="宋体" size="3">取</font>
								<font face="Times New Roman" size="3">
										<i>Z<sub>v</sub></i>
								</font>
								<font face="宋体" size="3">轴向为观察平面的法向</font>
								<font size="3">VPN<font face="宋体">，其单位矢量</font><font face="Times New Roman"><i>n</i></font>=VPN/|VPN|=<font face="宋体">(</font><font face="Times New Roman"><i>n<sub>x</sub></i></font><font face="宋体">,</font><font face="Times New Roman"><i>n<sub>y</sub></i></font><font face="宋体">,</font><i><font face="Times New Roman">n</font></i><sub><i><font face="Times New Roman">z</font></i></sub><font face="宋体">)</font></font>
						</p>
				</li>
				<li>
						<p style="LINE-HEIGHT: 200%">
								<font face="宋体">取</font>
								<font face="Times New Roman">
										<i>X<sub>v</sub></i>
								</font>
								<font face="宋体">轴向为观察方向</font>PREF<font face="宋体">，其单位矢量</font><font face="Times New Roman"><i>u</i></font>=PREF/|PREF|=<font face="宋体">(</font><font face="Times New Roman"><i>u<sub>x</sub></i></font><font face="宋体">,</font><font face="Times New Roman"><i>u<sub>y</sub></i></font><font face="宋体">,</font><i><font face="Times New Roman">u</font></i><sub><i><font face="Times New Roman">z</font></i></sub><font face="宋体">)</font></p>
				</li>
				<li>
						<p style="LINE-HEIGHT: 200%">取<font face="Times New Roman"><i>Y<sub>v</sub></i></font><font face="宋体">轴向的单位矢量</font><font face="Times New Roman"><i>v</i></font><font face="宋体">=</font><font face="Times New Roman"><i>u</i></font><font face="宋体">×</font><font face="Times New Roman"><i>n</i></font><font face="宋体">=（</font><font face="Times New Roman"><i>v<sub>x</sub></i></font><font face="宋体">，</font><font face="Times New Roman"><i>v<sub>y</sub></i></font><font face="宋体">，</font><font face="Times New Roman"><i>v<sub>z</sub></i></font><font face="宋体">）</font></p>
				</li>
		</ol>
		<blockquote>
				<font face="宋体" size="3">
						<p>
								<img height="92" src="http://jpkc.swjtu.edu.cn/C15/imagination/jisuanjituxing/Chapter6/CG_Gif_6_228.gif" width="354" border="0" />
						</p>
						<p>因此世界坐标到观察坐标到变换矩阵为：</p>
						<p align="justify">
								<img height="74" src="http://jpkc.swjtu.edu.cn/C15/imagination/jisuanjituxing/Chapter6/CG_Gif_6_229.gif" width="190" border="0" />
								<br /> <font face="黑体" color="#0000ff" size="3">正平行投影（三视图）</font></p>
						<p style="LINE-HEIGHT: 200%">
								<font face="宋体" size="3">    投影方向垂直于投影平面的投影称为<font color="#800000"><a name="1">正平行投影</a></font>，我们通常所说的三视图均属于正平行投影。三视图的生成就是把</font>
								<font face="Times New Roman" size="3">
										<i>x</i>
								</font>
								<font face="宋体" size="3">、</font>
								<font face="Times New Roman" size="3">
										<i>y</i>
								</font>
								<font face="宋体" size="3">、</font>
								<font face="Times New Roman" size="3">
										<i>z</i>
								</font>
								<font face="宋体" size="3">坐标系的形体投影到</font>
								<font face="Times New Roman" size="3">
										<i>z</i>
								</font>
								<font face="宋体" size="3">=0的平面，变换到</font>
								<font face="Times New Roman" size="3">
										<i>u</i>
								</font>
								<font face="宋体" size="3">、</font>
								<font face="Times New Roman" size="3">
										<i>v</i>
								</font>
								<font face="宋体" size="3">、</font>
								<font face="Times New Roman" size="3">
										<i>w</i>
								</font>
								<font face="宋体" size="3">坐标系。一般还需将三个视图在一个平面上画出，这时就得到下面的变换公式，其中(</font>
								<font face="Times New Roman" size="3">
										<i>a</i>
								</font>
								<font face="宋体" size="3">，</font>
								<font face="Times New Roman" size="3">
										<i>b</i>
								</font>
								<font face="宋体" size="3">)为</font>
								<font face="Times New Roman" size="3">
										<i>u</i>
								</font>
								<font face="宋体" size="3">、</font>
								<font face="Times New Roman" size="3">
										<i>v</i>
								</font>
								<font face="宋体" size="3">坐标系下的值，</font>
								<font face="Times New Roman" size="3">
										<i>t<sub>x</sub></i>
								</font>
								<font face="宋体" size="3">、</font>
								<font face="Times New Roman" size="3">
										<i>t<sub>y</sub></i>
								</font>
								<font face="宋体" size="3">、</font>
								<font face="Times New Roman" size="3">
										<i>t<sub>z</sub></i>
								</font>
								<font face="宋体" size="3">均如图中所示。<br />   1）主视图 
<ol><p align="justify"><img height="74" src="http://jpkc.swjtu.edu.cn/C15/imagination/jisuanjituxing/Chapter6/CG_Gif_6_230.gif" width="190" border="0" /></p></ol><p>   2）俯视图 
</p><ol><p align="justify"><img height="73" src="http://jpkc.swjtu.edu.cn/C15/imagination/jisuanjituxing/Chapter6/CG_Gif_6_231.gif" width="198" border="0" /></p></ol><p>   3）侧视图</p><blockquote><p align="justify"><img height="73" src="http://jpkc.swjtu.edu.cn/C15/imagination/jisuanjituxing/Chapter6/CG_Gif_6_232.gif" width="183" border="0" /></p><p align="center"><img height="205" src="http://jpkc.swjtu.edu.cn/C15/imagination/jisuanjituxing/Chapter6/CG_Gif_6_016.gif" width="460" border="0" /></p></blockquote></font>
						</p>
				</font>
		</blockquote>
		<p align="center">
				<font face="隶书" color="#ff9900" size="3">三视图<br /><br /><a name="1"><font face="黑体" color="#0000ff">斜平行投影</font></a></font>
		</p>
		<p style="LINE-HEIGHT: 200%">
				<font face="宋体" size="3">    投影方向不垂直于投影平面的平行投影被称为<font color="#800000">斜平行投影</font>，现在让我们来推导斜平行投影的变换矩阵。下图中的Z=0的坐标平面为观察平面，点（</font>
				<font face="Times New Roman" size="3">
						<i>x</i>
				</font>
				<font face="宋体" size="3">，</font>
				<font face="Times New Roman" size="3">
						<i>y</i>
				</font>
				<font face="宋体" size="3">）为点（</font>
				<font face="Times New Roman" size="3">
						<i>x</i>
				</font>
				<font face="宋体" size="3">，</font>
				<font face="Times New Roman" size="3">
						<i>y</i>
				</font>
				<font face="宋体" size="3">，</font>
				<font face="Times New Roman" size="3">
						<i>z</i>
				</font>
				<font face="宋体" size="3">）在观察平面上的正平行投影坐标，点（</font>
				<font face="Times New Roman" size="3">
						<i>x<sup>´</sup></i>
				</font>
				<font face="宋体" size="3">，</font>
				<font face="Times New Roman" size="3">
						<i>y</i>
				</font>
				<font face="Times New Roman" size="3">
						<i>´</i>
				</font>
				<font face="宋体" size="3">）为斜投影坐标。（</font>
				<font face="Times New Roman" size="3">
						<i>x</i>
				</font>
				<font face="宋体" size="3">，</font>
				<font face="Times New Roman" size="3">
						<i>y</i>
				</font>
				<font face="宋体" size="3">）与（</font>
				<font face="Times New Roman" size="3">
						<i>x<sup>´</sup></i>
				</font>
				<font face="宋体" size="3">，</font>
				<font face="Times New Roman" size="3">
						<i>y</i>
				</font>
				<font face="Times New Roman" size="3">
						<i>´</i>
				</font>
				<font face="宋体" size="3">）的距离为</font>
				<font face="Times New Roman" size="3">
						<i>L</i>
				</font>
				<font face="宋体" size="3">。 
<p align="center"><img height="258" src="http://jpkc.swjtu.edu.cn/C15/imagination/jisuanjituxing/Chapter6/CG_Gif_6_017.gif" width="267" border="0" /></p><p align="justify"><img height="28" src="http://jpkc.swjtu.edu.cn/C15/imagination/jisuanjituxing/Chapter6/CG_Gif_6_233.gif" width="286" border="0" /></p><p align="justify"><img height="29" src="http://jpkc.swjtu.edu.cn/C15/imagination/jisuanjituxing/Chapter6/CG_GIF_6_235.gif" width="364" border="0" /></p></font>
				<font size="3">
						<font face="宋体">
								<p align="justify">
										<img height="48" src="http://jpkc.swjtu.edu.cn/C15/imagination/jisuanjituxing/Chapter6/CG_Gif_6_236.gif" width="290" border="0" />
								</p>
								<p align="justify">
										<img height="50" src="http://jpkc.swjtu.edu.cn/C15/imagination/jisuanjituxing/Chapter6/CG_Gif_6_238.gif" width="409" border="0" />
								</p>
								<p align="justify">
										<img height="75" src="http://jpkc.swjtu.edu.cn/C15/imagination/jisuanjituxing/Chapter6/CG_Gif_6_239.gif" width="181" border="0" />
										<br />
										<br />
										<a name="5">
												<font face="黑体" color="#0000ff">透视投影</font>
										</a>
								</p>
								<p style="LINE-HEIGHT: 200%">
										<font face="宋体" size="3">    透视投影的视线（投影线）是从视点（观察点）出发，视线是不平行的。不平行于投影平面的视线汇聚的一点称为灭点，在坐标轴上的灭点叫做主灭点。主灭点数和投影平面切割坐标轴的数量相对应。按照主灭点的个数，透视投影可分为一点透视、二点透视和三点透视。 
<p align="justify"><img height="254" src="http://jpkc.swjtu.edu.cn/C15/imagination/jisuanjituxing/Chapter6/CG_Gif_6_018.gif" width="531" border="0" /><br /><br />下面我们来推导简单的一点透视的投影公式。</p><p align="center"><img height="207" src="http://jpkc.swjtu.edu.cn/C15/imagination/jisuanjituxing/Chapter6/CG_Gif_6_019.gif" width="293" border="0" /></p><p align="justify"><font face="宋体">从上图</font></p></font>
										<font face="Times New Roman" size="3">
												<i>P</i>
										</font>
										<font face="宋体" size="3">
												<font face="宋体">点在观察平面上的投影我们可以得到描述</font>
										</font>
										<font face="Times New Roman" size="3">
												<i>P</i>
										</font>
										<font face="宋体" size="3">´<font face="宋体">点的参数方程：</font></font>
								</p>
								<font face="宋体">
										<p align="center">
												<img height="137" src="http://jpkc.swjtu.edu.cn/C15/imagination/jisuanjituxing/Chapter6/CG_Gif_6_240.gif" width="137" border="0" />
										</p>
										<p align="justify">
												<img height="105" src="http://jpkc.swjtu.edu.cn/C15/imagination/jisuanjituxing/Chapter6/CG_Gif_6_241.gif" width="243" border="0" />
										</p>
										<p align="justify">用齐次坐标表示为：</p>
										<p align="justify">
												<img height="81" src="http://jpkc.swjtu.edu.cn/C15/imagination/jisuanjituxing/Chapter6/CG_Gif_6_242.gif" width="398" border="0" />
												<br />
												<br />
												<br />
												<a href="http://jpkc.swjtu.edu.cn/C15/imagination/jisuanjituxing/Chapter6/CG_Txt_6_018.htm">http://jpkc.swjtu.edu.cn/C15/imagination/jisuanjituxing/Chapter6/CG_Txt_6_018.htm</a>
										</p>
								</font>
						</font>
				</font>
		</p>
<img src ="http://www.cppblog.com/mzty/aggbug/8495.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/mzty/" target="_blank">梦在天涯</a> 2006-06-13 14:33 <a href="http://www.cppblog.com/mzty/archive/2006/06/13/8495.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>三维几何变换</title><link>http://www.cppblog.com/mzty/archive/2006/06/13/8494.html</link><dc:creator>梦在天涯</dc:creator><author>梦在天涯</author><pubDate>Tue, 13 Jun 2006 06:11:00 GMT</pubDate><guid>http://www.cppblog.com/mzty/archive/2006/06/13/8494.html</guid><wfw:comment>http://www.cppblog.com/mzty/comments/8494.html</wfw:comment><comments>http://www.cppblog.com/mzty/archive/2006/06/13/8494.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/mzty/comments/commentRss/8494.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mzty/services/trackbacks/8494.html</trackback:ping><description><![CDATA[
		<a name="2">
				<font face="黑体" color="#0000ff">三维几何变换</font>
		</a>
		<ol>
				<li>
						<p style="LINE-HEIGHT: 200%">
								<font face="宋体" size="3">由于用齐次坐标表示，三维几何变换的矩阵是一个4阶方阵，其形式如下： <br /><img height="110" src="http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Gif_6_281.gif" width="181" border="0" /><br /><br /></font>
								<img height="105" src="http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter5/CG_Gif_5_210.gif" width="510" border="0" />
						</p>
				</li>
		</ol>
		<font face="宋体" size="3">
				<p align="justify">     1）平移变换<br /><br />     参照二维的平移变换，我们很容易得到三维平移变换矩阵：<br /><br />     <img height="90" src="http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Gif_6_210.gif" width="382" border="0" /></p>
				<p style="LINE-HEIGHT: 200%">     2）缩放变换<br />    直接考虑相对于参考点</p>
		</font>
		<font face="宋体" size="4">（</font>
		<font size="4">
				<font face="Times New Roman">
						<i>x<sub>f</sub></i>
				</font>
				<font face="宋体">，</font>
				<font face="Times New Roman">
						<i>y<sub>f</sub></i>
				</font>
				<font face="宋体">，</font>
				<font face="Times New Roman">
						<i>z<sub>f</sub></i>
				</font>
				<font face="宋体">）</font>
		</font>
		<font face="宋体" size="4">的缩放变换，其步骤为：</font>
		<font face="宋体" size="3">
				<p style="LINE-HEIGHT: 200%">     A. 将平移到坐标原点处；<br />     B. 进行缩放变换；<br />     C. 将参考点</p>
		</font>
		<font face="宋体" size="4">（</font>
		<font size="4">
				<font face="Times New Roman">
						<i>x<sub>f</sub></i>
				</font>
				<font face="宋体">，</font>
				<font face="Times New Roman">
						<i>y<sub>f</sub></i>
				</font>
				<font face="宋体">，</font>
				<font face="Times New Roman">
						<i>z<sub>f</sub></i>
				</font>
				<font face="宋体">
				</font>
				<font face="宋体">）</font>
		</font>
		<font face="宋体" size="3">移回原来位置<br />       则变换矩阵为：<br />      <img height="84" src="http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Gif_6_244.gif" width="478" border="0" /><br />    3）绕坐标轴的旋转变换 <br />    三维空间的旋转相对要复杂些，考虑右手坐标系下相对坐标原点绕坐标轴旋转</font>
		<font face="Times New Roman" size="4">
				<i>q</i>
		</font>
		<font face="宋体" size="3"> 角的变换：</font>
		<p>
				<font face="宋体" size="3">     A.绕</font>
				<font face="Times New Roman" size="4">
						<i>x</i>
				</font>
				<font face="宋体">轴旋转<br /><br />    <img height="72" src="http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Gif_6_211.gif" width="282" border="0" /></font>
		</p>
		<p>
				<font face="宋体" size="3">     B.绕</font>
				<font face="Times New Roman" size="4">
						<i>y</i>
				</font>
				<font face="宋体">轴旋转<br /><br />    <img height="68" src="http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Gif_6_212.gif" width="263" border="0" /></font>
		</p>
		<p align="left">
				<font face="宋体" size="3">     C.绕</font>
				<font face="Times New Roman" size="4">
						<i>z</i>
				</font>
				<font face="宋体">轴旋转<br /><br />    <img height="69" src="http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Gif_6_213.gif" width="265" border="0" /><br /><br />     <img height="199" src="http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Gif_6_011.gif" width="204" /><img height="199" src="http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Gif_6_012.gif" width="230" /><br />     <img height="125" src="http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Gif_6_013.gif" width="561" border="0" /></font>
		</p>
		<p align="center">
				<font face="隶书" color="#ff9900" size="3">三维空间的平移、旋转及缩放示意图</font>
		</p>
		<p style="LINE-HEIGHT: 200%">
				<font face="宋体" size="3">   4）绕任意轴的旋转变换</font>
				<i>
						<font size="4">
								<br />
						</font>
				</i>
				<font face="宋体" size="3">   设旋转轴</font>
				<font face="Times New Roman" size="4">
						<i>AB</i>
				</font>
				<font face="宋体" size="3">由任意一点</font>
				<font face="Times New Roman" size="4">
						<i>A</i>
				</font>
				<font face="宋体" size="3">（</font>
				<font face="Times New Roman" size="4">
						<i>x<sub>a</sub></i>
				</font>
				<font size="3">
						<font face="宋体">，</font>
				</font>
				<font face="Times New Roman" size="4">
						<i>y<sub>a</sub></i>
				</font>
				<font size="3">
						<font face="宋体">，</font>
				</font>
				<font face="Times New Roman" size="4">
						<i>z<sub>a</sub></i>
				</font>
				<font face="宋体">）及其方向数(</font>
				<font face="Times New Roman" size="4">
						<i>a</i>
				</font>
				<font face="宋体">，</font>
				<font face="Times New Roman" size="4">
						<i>b</i>
				</font>
				<font face="宋体">，</font>
				<font face="Times New Roman" size="4">
						<i>c</i>
				</font>
				<font face="宋体">)定义，<img height="29" src="http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Gif_6_288.gif" width="400" border="0" /><br /><br />      <img height="101" src="http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Gif_6_214.gif" width="133" border="0" /></font>
		</p>
		<p>
				<font face="宋体" size="3">   可以通过下列步骤来实现</font>
				<font face="Times New Roman" size="4">
						<i>P</i>
				</font>
				<font face="宋体">点的旋转：</font>
		</p>
		<p>
				<font face="宋体" size="3">     A. 将</font>
				<font face="Times New Roman" size="4">
						<i>A</i>
				</font>
				<font face="宋体" size="3">点移到坐标原点。</font>
		</p>
		<font face="宋体" size="3">
				<p>     B. 使</p>
		</font>
		<font face="Times New Roman" size="4">
				<i>AB</i>
		</font>
		<font face="宋体" size="3">分别绕</font>
		<font face="Times New Roman" size="4">
				<i>X</i>
		</font>
		<font face="宋体" size="3">轴、</font>
		<font face="Times New Roman" size="4">
				<i>Y</i>
		</font>
		<font face="宋体" size="3">轴旋转适当角度与</font>
		<font face="Times New Roman" size="4">
				<i>Z</i>
		</font>
		<font face="宋体" size="3">轴重合。</font>
		<p>
				<font face="宋体" size="3">     </font>
				<img height="33" src="http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Gif_6_290.gif" width="198" border="0" />
		</p>
		<p style="LINE-HEIGHT: 150%">
				<font face="宋体" size="3">     D.作上述变换的逆操作，使</font>
				<font face="Times New Roman" size="4">
						<i>AB</i>
				</font>
				<font face="宋体">回到原来位置。</font>
		</p>
		<p style="LINE-HEIGHT: 150%">
				<img height="27" src="http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Gif_6_215.gif" width="431" border="0" />
		</p>
		<p style="LINE-HEIGHT: 150%">
				<img height="26" src="http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Gif_6_284.gif" width="475" border="0" />
		</p>
		<p style="LINE-HEIGHT: 150%">
				<font size="3">
						<font face="宋体">是</font>
				</font>
				<font face="Times New Roman" size="4">
						<i>AB</i>
				</font>
				<font size="3">
						<font face="宋体">在</font>
				</font>
				<i>
						<font face="Times New Roman" size="3">YOZ</font>
				</i>
				<font size="3">
						<font face="宋体">平面与</font>
				</font>
				<i>
						<font face="Times New Roman" size="3">XOZ</font>
				</i>
				<font face="宋体">平面的投影与</font>
				<font face="Times New Roman" size="4">
						<i>Z</i>
				</font>
				<font face="宋体">轴的夹角。<br /><br /><br /><a href="http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Txt_6_012.htm">http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Txt_6_012.htm</a></font>
		</p>
<img src ="http://www.cppblog.com/mzty/aggbug/8494.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/mzty/" target="_blank">梦在天涯</a> 2006-06-13 14:11 <a href="http://www.cppblog.com/mzty/archive/2006/06/13/8494.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>二维图形的几何变换</title><link>http://www.cppblog.com/mzty/archive/2006/06/13/8493.html</link><dc:creator>梦在天涯</dc:creator><author>梦在天涯</author><pubDate>Tue, 13 Jun 2006 06:10:00 GMT</pubDate><guid>http://www.cppblog.com/mzty/archive/2006/06/13/8493.html</guid><wfw:comment>http://www.cppblog.com/mzty/comments/8493.html</wfw:comment><comments>http://www.cppblog.com/mzty/archive/2006/06/13/8493.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/mzty/comments/commentRss/8493.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mzty/services/trackbacks/8493.html</trackback:ping><description><![CDATA[
		<a name="2">
				<font face="黑体" color="#0000ff">二维图形的几何变换</font>
		</a>
		<p style="LINE-HEIGHT: 200%">
				<font face="宋体" size="3">    正如我们在附录中提到的那样，用齐次坐标表示点的变换将非常方便，因此在本节中所有的几何变换都将采用齐次坐标进行运算。二维齐次坐标变换的矩阵的形式是： <br /><img height="71" src="http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Gif_6_256.gif" width="91" border="0" />                  <br />这个矩阵每一个元素都是有特殊含义的。<br /><img height="41" src="http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter5/CG_Gif_5_209.gif" width="535" border="0" /></font>
				<font face="宋体" size="3">形进行平移变换；[</font>
				<font face="Times New Roman" size="3">
						<i>g</i>
				</font>
				<font face="宋体" size="3">
				</font>
				<font face="Times New Roman" size="3">
						<i>h</i>
				</font>
				<font face="宋体" size="3">]是对图形作投影变换；[</font>
				<font face="Times New Roman" size="3">
						<i>i</i>
				</font>
				<font face="宋体" size="3">]则是对图形整体进行缩放变换。<br />1）平移变换 <br /><img height="81" src="http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Gif_6_253.gif" width="359" border="0" /><br /><br />2）缩放变换 <br /><img height="81" src="http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Gif_6_254.gif" width="369" border="0" /><br /><br />3）旋转变换<img height="28" src="http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Gif_6_291.gif" width="502" border="0" /><br /><img height="66" src="http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Gif_6_255.gif" width="421" border="0" /><br /><br /><img height="28" src="http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Gif_6_292.gif" width="336" border="0" /><br />4）对称变换<br /></font>
				<i>
						<font size="3">
								<img src="http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Gif_6_222.gif" border="0" />
						</font>
				</i>
		</p>
		<p>
				<font face="宋体" size="3">对称变换其实只是</font>
				<font size="3">
						<font face="Times New Roman">
								<i>a</i>
						</font>
						<font face="宋体">、</font>
						<font face="Times New Roman">
								<i>b</i>
						</font>
						<font face="宋体">、</font>
						<font face="Times New Roman">
								<i>d</i>
						</font>
						<font face="宋体">、</font>
						<font face="Times New Roman">
								<i>e</i>
						</font>
						<font face="宋体">取</font>0<font face="宋体">、</font>1<font face="宋体">等特殊值产生的一些特殊效果。例如：</font></font>
		</p>
		<ol type="A">
				<li>
						<p style="LINE-HEIGHT: 200%">
								<font face="宋体" size="3">当</font>
								<font face="Times New Roman" size="3">
										<i>b</i>
								</font>
								<font face="宋体" size="3">=</font>
								<font face="Times New Roman" size="3">
										<i>d</i>
								</font>
								<font face="宋体" size="3">=0，</font>
								<font face="Times New Roman" size="3">
										<i>a</i>
								</font>
								<font face="宋体" size="3">=-1，</font>
								<font face="Times New Roman" size="3">
										<i>e</i>
								</font>
								<font face="宋体" size="3">=1时有</font>
								<font size="3">
										<font face="Times New Roman">
												<i>x</i>
										</font>
										<sup>´</sup>=-<font face="Times New Roman"><i>x</i></font><font face="宋体">，</font><font face="Times New Roman"><i>y</i></font><sup>´</sup>=<font face="Times New Roman"><i>y</i></font><font face="宋体">，产生与</font><font face="Times New Roman"><i>y</i></font><font face="宋体">轴对称的图形</font><i>。</i></font>
						</p>
				</li>
				<li>
						<p style="LINE-HEIGHT: 200%">
								<font face="宋体">当</font>
								<font face="Times New Roman" size="3">
										<i>b</i>
								</font>
								<font face="宋体" size="3">=</font>
								<font face="Times New Roman" size="3">
										<i>d</i>
								</font>
								<font face="宋体" size="3">=0，</font>
								<font face="Times New Roman" size="3">
										<i>a</i>
								</font>
								<font face="宋体" size="3">=-1，</font>
								<font face="Times New Roman" size="3">
										<i>e</i>
								</font>
								<font face="宋体">=-1时有</font>
								<font face="Times New Roman">
										<i>x</i>
								</font>
								<sup>´</sup>=<font face="Times New Roman"><i>x</i></font><font face="宋体">，</font><font face="Times New Roman"><i>y</i></font><sup>´</sup>=-<font face="Times New Roman"><i>y</i></font><font face="宋体">，产生与</font><font face="Times New Roman"><i>x</i></font><font face="宋体">轴对称的图形。</font></p>
				</li>
				<li>
						<p style="LINE-HEIGHT: 200%">
								<font face="宋体" size="3">当</font>
								<font size="3">
										<font face="Times New Roman" size="3">
												<i>b</i>
										</font>
										<font face="宋体" size="3">=</font>
										<font face="Times New Roman" size="3">
												<i>d</i>
										</font>
								</font>
								<font face="宋体" size="3">=0，</font>
								<font face="Times New Roman" size="3">
										<i>a</i>
								</font>
								<font face="宋体" size="3">=</font>
								<font face="Times New Roman" size="3">
										<i>e</i>
								</font>
								<font face="宋体" size="3">=-1时有</font>
								<font size="3">
										<font face="Times New Roman">
												<i>x</i>
										</font>
										<sup>´</sup>=-<font face="Times New Roman"><i>x</i></font><font face="宋体">，</font><font face="Times New Roman"><i>y</i></font><sup>´</sup>=-<font face="Times New Roman"><i>y</i></font><font face="宋体">，产生与原点对称的图形。</font></font>
						</p>
				</li>
				<li>
						<p style="LINE-HEIGHT: 200%">
								<font face="宋体">当</font>
								<font face="Times New Roman" size="3">
										<i>b</i>
								</font>
								<font face="宋体" size="3">=</font>
								<font face="Times New Roman" size="3">
										<i>d</i>
								</font>
								<font face="宋体" size="3">
								</font>
								<font face="宋体">=1，</font>
								<font face="Times New Roman" size="3">
										<i>a</i>
								</font>
								<font face="宋体" size="3">=</font>
								<font face="Times New Roman" size="3">
										<i>e</i>
								</font>
								<font face="宋体">=0时有</font>
								<font face="Times New Roman">
										<i>x</i>
								</font>
								<sup>´</sup>=<font face="Times New Roman"><i>y</i></font><font face="宋体">，</font><font face="Times New Roman"><i>y</i></font><sup>´</sup>=<font face="Times New Roman"><i>x</i></font><font face="宋体">，产生与直线</font>y=x<font face="宋体">对称的图形。</font></p>
				</li>
				<li>
						<p style="LINE-HEIGHT: 200%">
								<font face="宋体">当</font>
								<font face="Times New Roman" size="3">
										<i>b</i>
								</font>
								<font face="宋体" size="3">=</font>
								<font face="Times New Roman" size="3">
										<i>d</i>
								</font>
								<font face="宋体" size="3">
								</font>
								<font face="宋体">=-1，</font>
								<font face="Times New Roman" size="3">
										<i>a</i>
								</font>
								<font face="宋体" size="3">=</font>
								<font face="Times New Roman" size="3">
										<i>e</i>
								</font>
								<font face="宋体">=0时有</font>
								<font face="Times New Roman">
										<i>x</i>
								</font>
								<sup>´</sup>=-<font face="Times New Roman" size="3"><i>y</i></font><font face="宋体">，</font><font face="Times New Roman"><i>y</i></font><sup>´</sup>=-<font face="Times New Roman" size="3"><i>x</i></font><font face="宋体">，产生与直线</font><font face="Times New Roman"><i>y</i></font>=-<font face="Times New Roman"><i>x</i></font><font face="宋体">对称的图形。</font></p>
				</li>
		</ol>
		<p>
				<font face="宋体" size="3">5）错切变换<br /><br /></font>
				<img height="70" src="http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Gif_6_223.gif" width="236" border="0" />
				<font size="3">
						<ol type="A">
								<li>
										<p style="LINE-HEIGHT: 200%">
												<font face="宋体">当</font>
												<font face="Times New Roman">
														<i>d</i>
												</font>=0<font face="宋体">时，</font><font face="Times New Roman"><i>x</i></font><sup>´</sup>=<font face="Times New Roman"><i>x</i></font><font face="宋体">+</font><font face="Times New Roman"><i>by</i></font><font face="宋体">，</font><font face="Times New Roman"><i>y</i></font><sup>´</sup>=<font face="Times New Roman"><i>y</i></font><font face="宋体">，此时，图形的</font><font face="Times New Roman"><i>y</i></font><font face="宋体">坐标不变，</font><font face="Times New Roman"><i>x</i></font><font face="宋体">坐标随初值  （</font><font face="Times New Roman"><i>x</i></font><font face="宋体">，</font><font face="Times New Roman"><i>y</i></font><font face="宋体">）及变换系数</font><font face="Times New Roman"><i>b</i></font><font face="宋体">作线性变化。</font></p>
								</li>
								<li>
										<p style="LINE-HEIGHT: 200%">
												<font face="宋体">当</font>
												<font face="Times New Roman">
														<i>b</i>
												</font>=0<font face="宋体">时，</font><font face="Times New Roman"><i>x</i></font><sup>´</sup>=<font face="Times New Roman"><i>x</i></font><font face="宋体">，</font><font face="Times New Roman"><i>y</i></font><sup>´</sup>=<font face="Times New Roman"><i>dx</i></font>+<font face="Times New Roman"><i>y</i></font><font face="宋体">，此时，图形的</font><font face="Times New Roman" size="3"><i>x</i></font><font face="宋体">坐标不变，</font><font face="Times New Roman"><i>y</i></font><font face="宋体">坐标随初值  （</font><font face="Times New Roman"><i>x</i></font><font face="宋体">，</font><font face="Times New Roman"><i>y</i></font><font face="宋体">）及变换系数</font><font face="Times New Roman"><i>d</i></font><font face="宋体">作线性变化。</font></p>
								</li>
						</ol>
						<font face="宋体">
								<blockquote>
										<p align="center">
												<img height="189" src="http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Gif_6_005.gif" width="239" />
												<img height="175" src="http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Gif_6_006.gif" width="221" />
												<br />
												<img height="169" src="http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Gif_6_007.gif" width="230" />
												<img height="178" src="http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Gif_6_008.gif" width="223" />
												<br />
												<img height="181" src="http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Gif_6_009.gif" width="222" />
												<img height="210" src="http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Gif_6_010.gif" width="217" />
										</p>
								</blockquote>
								<p>6）复合变换</p>
						</font>
				</font>
		</p>
		<blockquote>
				<p style="LINE-HEIGHT: 200%" align="justify">
						<font face="宋体" size="3">如果图形要做一次以上的几何变换，那么可以将各个变换矩阵综合起来进行一步到位的变换。复合变换有如下的性质：</font>
				</p>
		</blockquote>
		<ol type="A">
				<font face="宋体" size="3">
						<li>复合平移 
<p style="LINE-HEIGHT: 250%" align="justify">对同一图形做两次平移相当于将两次的平移两加起来：<img height="63" src="http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Gif_6_224.gif" width="516" border="0" /><br /></p></li>
						<li>复合缩放 
<p style="LINE-HEIGHT: 200%" align="justify">两次连续的缩放相当于将缩放操作相乘：</p><p style="LINE-HEIGHT: 200%" align="justify"><img height="158" src="http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Gif_6_282.gif" width="424" border="0" /></p></li>
				</font>
				<font face="宋体" size="3">
						<li>复合旋转 
<p style="LINE-HEIGHT: 200%" align="justify">两次连续的旋转相当于将两次的旋转角度相加：<img height="50" src="http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Gif_6_283.gif" width="509" border="0" /></p></li>
				</font>
				<font face="宋体" size="3">缩放、旋转变换都与参考点有关，上面进行的各种变换都是以原点为参考点的。如果相对某个一般的参考点（</font>
				<font size="3">
						<font face="Times New Roman">
								<i>x<sub>f</sub></i>
						</font>
						<font face="宋体">，</font>
						<font face="Times New Roman">
								<i>y<sub>f</sub></i>
						</font>
						<font face="宋体">）作缩放、旋转变换，相当于将该点移到坐标原点处，然后进行缩放、旋转变换，最后将（</font>
						<font face="Times New Roman">
								<i>x<sub>f</sub></i>
						</font>
						<font face="宋体">
						</font>
						<font face="宋体">，</font>
						<font face="宋体">
						</font>
						<font face="Times New Roman">
								<i>y<sub>f</sub></i>
						</font>
						<font face="宋体">
						</font>
						<font face="宋体">）点移回原来的位置。切记复合变换时，先作用的变换矩阵在右端，后作用的变换矩阵在左端。 </font>
						<li>
								<font face="宋体">关于（</font>
								<font face="Times New Roman">
										<i>x<sub>f</sub></i>
								</font>
								<font face="宋体">
								</font>
								<font face="宋体">，</font>
								<font face="Times New Roman">
										<i>y<sub>f</sub></i>
								</font>
								<font face="宋体">
								</font>
								<font face="宋体">）点的缩放变换 
<p align="justify"><img height="25" src="http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Gif_6_225.gif" width="301" border="0" /></p></font>
								<p align="justify">
										<img height="141" src="http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Gif_6_226.gif" width="277" border="0" />
								</p>
						</li>
				</font>
				<font size="3">
						<li>
								<font face="宋体">绕（</font>
								<i>x<sub>f</sub></i>
								<font face="宋体">，</font>
								<i>y<sub>f</sub></i>
								<font face="宋体">
								</font>
								<font face="宋体">）点的旋转变换 
<p align="justify"><img height="168" src="http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Gif_6_227.gif" width="338" border="0" /></p></font>
								<p align="justify">
										<a href="http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Txt_6_011.htm">http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Txt_6_011.htm</a>　</p>
						</li>
				</font>
		</ol>
<img src ="http://www.cppblog.com/mzty/aggbug/8493.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/mzty/" target="_blank">梦在天涯</a> 2006-06-13 14:10 <a href="http://www.cppblog.com/mzty/archive/2006/06/13/8493.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>窗口区到视图区的坐标变换 </title><link>http://www.cppblog.com/mzty/archive/2006/06/13/8492.html</link><dc:creator>梦在天涯</dc:creator><author>梦在天涯</author><pubDate>Tue, 13 Jun 2006 06:05:00 GMT</pubDate><guid>http://www.cppblog.com/mzty/archive/2006/06/13/8492.html</guid><wfw:comment>http://www.cppblog.com/mzty/comments/8492.html</wfw:comment><comments>http://www.cppblog.com/mzty/archive/2006/06/13/8492.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/mzty/comments/commentRss/8492.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mzty/services/trackbacks/8492.html</trackback:ping><description><![CDATA[
		<a name="1">
				<font face="黑体" color="#0000ff">窗口区到视图区的坐标变换</font>
		</a>
		<p style="LINE-HEIGHT: 200%">
				<font face="宋体" size="3">    实际的窗口区与视图区往往不一样大小，要在视图区正确地显示形体的，必须将其从窗口区变换到视图区。</font>
		</p>
		<p align="center">
				<font face="宋体" size="3">
						<br />
						<img height="199" src="http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Gif_6_004.gif" width="488" border="0" />   </font>
		</p>
		<p>
				<font face="宋体" size="3">比例关系，两者的变换公式为： </font>
		</p>
		<p align="center">
				<font face="宋体" size="3">
						<img height="50" src="http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Gif_6_216.gif" width="231" border="0" />
				</font>
		</p>
		<p align="center">   <img height="50" src="http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Gif_6_217.gif" width="254" border="0" /><font face="宋体" size="3"></font></p>
		<p>可以简单地将两者的关系表示为：</p>
		<p align="center">  <img height="193" src="http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Gif_6_219.gif" width="178" border="0" />  </p>
		<p>
				<img height="66" src="http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Gif_6_220.gif" width="414" border="0" /> <br /><br /><a href="http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Txt_6_010.htm">http://necweb.neu.edu.cn/ncourse//tuxingxue/Chapter6/CG_Txt_6_010.htm</a></p>
<img src ="http://www.cppblog.com/mzty/aggbug/8492.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/mzty/" target="_blank">梦在天涯</a> 2006-06-13 14:05 <a href="http://www.cppblog.com/mzty/archive/2006/06/13/8492.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>managed directx实现读写buffer (Read and Write VertexBuffer and IndexBuffer Data)</title><link>http://www.cppblog.com/mzty/archive/2006/06/09/8343.html</link><dc:creator>梦在天涯</dc:creator><author>梦在天涯</author><pubDate>Fri, 09 Jun 2006 08:39:00 GMT</pubDate><guid>http://www.cppblog.com/mzty/archive/2006/06/09/8343.html</guid><wfw:comment>http://www.cppblog.com/mzty/comments/8343.html</wfw:comment><comments>http://www.cppblog.com/mzty/archive/2006/06/09/8343.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/mzty/comments/commentRss/8343.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mzty/services/trackbacks/8343.html</trackback:ping><description><![CDATA[<h1>Read and Write VertexBuffer and IndexBuffer Data With GraphicsStreams<a idx_concept="VertexBuffer [DirectX 9.0 for Managed Code]"></a></h1>
<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top> <span style="COLOR: #0000ff">using</span> <span style="COLOR: #000000">&nbsp;System;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span> <span style="COLOR: #0000ff">using</span> <span style="COLOR: #000000">&nbsp;Microsoft.DirectX;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span> <span style="COLOR: #0000ff">using</span> <span style="COLOR: #000000">&nbsp;Microsoft.DirectX.Direct3D;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000">&nbsp;</span> <span style="COLOR: #0000ff">struct</span> <span style="COLOR: #000000">&nbsp;PositionNormalTexVertex<br><img id=Codehighlighter1_112_282_Open_Image onclick="this.style.display='none'; Codehighlighter1_112_282_Open_Text.style.display='none'; Codehighlighter1_112_282_Closed_Image.style.display='inline'; Codehighlighter1_112_282_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_112_282_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_112_282_Closed_Text.style.display='none'; Codehighlighter1_112_282_Open_Image.style.display='inline'; Codehighlighter1_112_282_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span> <span id=Codehighlighter1_112_282_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"> </span><span id=Codehighlighter1_112_282_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000">&nbsp;Vector3&nbsp;Position;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000">&nbsp;Vector3&nbsp;Normal;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000">&nbsp;&nbsp;</span> <span style="COLOR: #0000ff">float</span> <span style="COLOR: #000000">&nbsp;Tu0,&nbsp;Tv0;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000">&nbsp;</span> <span style="COLOR: #0000ff">static</span> <span style="COLOR: #000000">&nbsp;</span> <span style="COLOR: #0000ff">readonly</span> <span style="COLOR: #000000">&nbsp;VertexFormats&nbsp;FVF&nbsp;</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">&nbsp;VertexFormats.Position&nbsp;</span> <span style="COLOR: #000000">|</span> <span style="COLOR: #000000">&nbsp;VertexFormats.Texture1;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span> </span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top> </span><span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000">&nbsp;</span> <span style="COLOR: #0000ff">class</span> <span style="COLOR: #000000">&nbsp;Example<br><img id=Codehighlighter1_305_1658_Open_Image onclick="this.style.display='none'; Codehighlighter1_305_1658_Open_Text.style.display='none'; Codehighlighter1_305_1658_Closed_Image.style.display='inline'; Codehighlighter1_305_1658_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_305_1658_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_305_1658_Closed_Text.style.display='none'; Codehighlighter1_305_1658_Open_Image.style.display='inline'; Codehighlighter1_305_1658_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span> <span id=Codehighlighter1_305_1658_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"> </span><span id=Codehighlighter1_305_1658_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000">&nbsp;</span> <span style="COLOR: #0000ff">unsafe</span> <span style="COLOR: #000000">&nbsp;</span> <span style="COLOR: #0000ff">void</span> <span style="COLOR: #000000">&nbsp;&nbsp;GraphicsStreamReadWrite()<br><img id=Codehighlighter1_355_1656_Open_Image onclick="this.style.display='none'; Codehighlighter1_355_1656_Open_Text.style.display='none'; Codehighlighter1_355_1656_Closed_Image.style.display='inline'; Codehighlighter1_355_1656_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_355_1656_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_355_1656_Closed_Text.style.display='none'; Codehighlighter1_355_1656_Open_Image.style.display='inline'; Codehighlighter1_355_1656_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span> <span id=Codehighlighter1_355_1656_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"> </span><span id=Codehighlighter1_355_1656_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">Create&nbsp;a&nbsp;vertex&nbsp;buffer&nbsp;in&nbsp;the&nbsp;managed&nbsp;pool</span> <span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top> </span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VertexBuffer&nbsp;vb&nbsp;</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">&nbsp;</span> <span style="COLOR: #0000ff">new</span> <span style="COLOR: #000000">&nbsp;VertexBuffer(</span> <span style="COLOR: #0000ff">typeof</span> <span style="COLOR: #000000">(PositionNormalTexVertex),&nbsp;</span> <span style="COLOR: #000000">100</span> <span style="COLOR: #000000">,&nbsp;device,&nbsp;Usage.None,&nbsp;PositionNormalTexVertex.FVF,&nbsp;Pool.Managed);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">First,&nbsp;fill&nbsp;an&nbsp;array&nbsp;of&nbsp;PositionNormalTexVertex&nbsp;elements&nbsp;with&nbsp;data.</span> <span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top> </span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PositionNormalTexVertex[]&nbsp;vertices&nbsp;</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">&nbsp;</span> <span style="COLOR: #0000ff">new</span> <span style="COLOR: #000000">&nbsp;PositionNormalTexVertex[</span> <span style="COLOR: #000000">50</span> <span style="COLOR: #000000">];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="COLOR: #0000ff">for</span> <span style="COLOR: #000000">(</span> <span style="COLOR: #0000ff">int</span> <span style="COLOR: #000000">&nbsp;i</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">0</span> <span style="COLOR: #000000">;&nbsp;i</span> <span style="COLOR: #000000">&lt;</span> <span style="COLOR: #000000">50</span> <span style="COLOR: #000000">;&nbsp;i</span> <span style="COLOR: #000000">++</span> <span style="COLOR: #000000">)<br><img id=Codehighlighter1_716_810_Open_Image onclick="this.style.display='none'; Codehighlighter1_716_810_Open_Text.style.display='none'; Codehighlighter1_716_810_Closed_Image.style.display='inline'; Codehighlighter1_716_810_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_716_810_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_716_810_Closed_Text.style.display='none'; Codehighlighter1_716_810_Open_Image.style.display='inline'; Codehighlighter1_716_810_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span id=Codehighlighter1_716_810_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"> </span><span id=Codehighlighter1_716_810_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">fill&nbsp;the&nbsp;vertices&nbsp;with&nbsp;some&nbsp;data<img src="http://www.cppblog.com/Images/dot.gif"></span> <span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top> </span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vertices[i].Position&nbsp;</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">&nbsp;</span> <span style="COLOR: #0000ff">new</span> <span style="COLOR: #000000">&nbsp;Vector3(3f,4f,5f);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span> </span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top> <br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">The&nbsp;size&nbsp;of&nbsp;the&nbsp;verticies&nbsp;are&nbsp;32-bytes&nbsp;each&nbsp;(float3&nbsp;(12)&nbsp;+&nbsp;float3&nbsp;(12)&nbsp;+&nbsp;float(4)&nbsp;+&nbsp;float(4))<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">To&nbsp;lock&nbsp;50&nbsp;verticies,&nbsp;the&nbsp;size&nbsp;of&nbsp;the&nbsp;lock&nbsp;would&nbsp;be&nbsp;1600&nbsp;(32&nbsp;*&nbsp;50)</span> <span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top> </span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GraphicsStream&nbsp;vbData&nbsp;</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">&nbsp;&nbsp;vb.Lock(</span> <span style="COLOR: #000000">0</span> <span style="COLOR: #000000">,</span> <span style="COLOR: #000000">1600</span> <span style="COLOR: #000000">,&nbsp;LockFlags.None);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">copy&nbsp;the&nbsp;vertex&nbsp;data&nbsp;into&nbsp;the&nbsp;vertex&nbsp;buffer</span> <span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top> </span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vbData.Write(vertices);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">Unlock&nbsp;the&nbsp;VB</span> <span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top> </span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vb.Unlock();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">This&nbsp;time,&nbsp;lock&nbsp;the&nbsp;entire&nbsp;VertexBuffer</span> <span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top> </span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vbData&nbsp;</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">&nbsp;&nbsp;vb.Lock(</span> <span style="COLOR: #000000">0</span> <span style="COLOR: #000000">,&nbsp;</span> <span style="COLOR: #000000">3200</span> <span style="COLOR: #000000">,&nbsp;LockFlags.None);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">Cast&nbsp;the&nbsp;InternalDataPointer&nbsp;(a&nbsp;void&nbsp;pointer)&nbsp;to&nbsp;an&nbsp;array&nbsp;of&nbsp;verticies</span> <span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top> </span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PositionNormalTexVertex</span> <span style="COLOR: #000000">*</span> <span style="COLOR: #000000">&nbsp;vbArray&nbsp;</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">&nbsp;(PositionNormalTexVertex</span> <span style="COLOR: #000000">*</span> <span style="COLOR: #000000">)&nbsp;vbData.InternalDataPointer;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="COLOR: #0000ff">for</span> <span style="COLOR: #000000">(</span> <span style="COLOR: #0000ff">int</span> <span style="COLOR: #000000">&nbsp;i</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">0</span> <span style="COLOR: #000000">;&nbsp;i</span> <span style="COLOR: #000000">&lt;</span> <span style="COLOR: #000000">100</span> <span style="COLOR: #000000">;&nbsp;i</span> <span style="COLOR: #000000">++</span> <span style="COLOR: #000000">)<br><img id=Codehighlighter1_1441_1599_Open_Image onclick="this.style.display='none'; Codehighlighter1_1441_1599_Open_Text.style.display='none'; Codehighlighter1_1441_1599_Closed_Image.style.display='inline'; Codehighlighter1_1441_1599_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1441_1599_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1441_1599_Closed_Text.style.display='none'; Codehighlighter1_1441_1599_Open_Image.style.display='inline'; Codehighlighter1_1441_1599_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span id=Codehighlighter1_1441_1599_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"> </span><span id=Codehighlighter1_1441_1599_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">perform&nbsp;some&nbsp;operations&nbsp;on&nbsp;the&nbsp;data</span> <span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top> </span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vbArray[i].Tu0&nbsp;</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">&nbsp;i;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vbArray[i].Tv0&nbsp;</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">&nbsp;vbArray[i].Tu0&nbsp;</span> <span style="COLOR: #000000">*</span> <span style="COLOR: #000000">&nbsp;</span> <span style="COLOR: #000000">2</span> <span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(vbArray[i].Tv0.ToString());<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span> </span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top> <br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">Unlock&nbsp;the&nbsp;buffer</span> <span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top> </span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vb.Unlock();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vb.Dispose();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span> </span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span> </span></div>
<br>
<h1>Read and Write VertexBuffer Data With Arrays</h1>
<p>&nbsp;</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000">&nbsp;System;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000">&nbsp;Microsoft.DirectX;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000">&nbsp;Microsoft.DirectX.Direct3D;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">struct</span><span style="COLOR: #000000">&nbsp;PositionNormalTexVertex<br><img id=Codehighlighter1_112_281_Open_Image onclick="this.style.display='none'; Codehighlighter1_112_281_Open_Text.style.display='none'; Codehighlighter1_112_281_Closed_Image.style.display='inline'; Codehighlighter1_112_281_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_112_281_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_112_281_Closed_Text.style.display='none'; Codehighlighter1_112_281_Open_Image.style.display='inline'; Codehighlighter1_112_281_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_112_281_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_112_281_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;Vector3&nbsp;Position;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;Vector3&nbsp;Normal;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">float</span><span style="COLOR: #000000">&nbsp;Tu0,&nbsp;Tv0;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">readonly</span><span style="COLOR: #000000">&nbsp;VertexFormats&nbsp;FVF&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;VertexFormats.Position&nbsp;</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">&nbsp;VertexFormats.Texture1;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;Example<br><img id=Codehighlighter1_305_1467_Open_Image onclick="this.style.display='none'; Codehighlighter1_305_1467_Open_Text.style.display='none'; Codehighlighter1_305_1467_Closed_Image.style.display='inline'; Codehighlighter1_305_1467_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_305_1467_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_305_1467_Closed_Text.style.display='none'; Codehighlighter1_305_1467_Open_Image.style.display='inline'; Codehighlighter1_305_1467_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_305_1467_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_305_1467_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;ArrayBasedReadWrite()<br><img id=Codehighlighter1_343_1465_Open_Image onclick="this.style.display='none'; Codehighlighter1_343_1465_Open_Text.style.display='none'; Codehighlighter1_343_1465_Closed_Image.style.display='inline'; Codehighlighter1_343_1465_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_343_1465_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_343_1465_Closed_Text.style.display='none'; Codehighlighter1_343_1465_Open_Image.style.display='inline'; Codehighlighter1_343_1465_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_343_1465_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_343_1465_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">Create&nbsp;a&nbsp;vertex&nbsp;buffer&nbsp;in&nbsp;the&nbsp;managed&nbsp;pool</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VertexBuffer&nbsp;vb&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;VertexBuffer(</span><span style="COLOR: #0000ff">typeof</span><span style="COLOR: #000000">(PositionNormalTexVertex),&nbsp;</span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">,&nbsp;device,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Usage.None,&nbsp;PositionNormalTex1Vertex.FVF,&nbsp;Pool.Managed);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">Fill&nbsp;an&nbsp;array&nbsp;of&nbsp;the&nbsp;appropriate&nbsp;type&nbsp;with&nbsp;the&nbsp;VB&nbsp;data&nbsp;using&nbsp;Lock()</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PositionNormalTexVertex[]&nbsp;vbData&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(PositionNormalTexVertex[])&nbsp;vb.Lock(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">typeof</span><span style="COLOR: #000000">(PositionNormalTexVertex),&nbsp;LockFlags.None,&nbsp;</span><span style="COLOR: #000000">50</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;&nbsp;i</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">50</span><span style="COLOR: #000000">;&nbsp;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_798_979_Open_Image onclick="this.style.display='none'; Codehighlighter1_798_979_Open_Text.style.display='none'; Codehighlighter1_798_979_Closed_Image.style.display='inline'; Codehighlighter1_798_979_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_798_979_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_798_979_Closed_Text.style.display='none'; Codehighlighter1_798_979_Open_Image.style.display='inline'; Codehighlighter1_798_979_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_798_979_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_798_979_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">set&nbsp;your&nbsp;vertices&nbsp;to&nbsp;something<img src="http://www.cppblog.com/Images/dot.gif"></span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vbData[i].Position&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Vector3(2f,2f,2f);&nbsp;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vbData[i].Normal&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Vector3(1f,0f,0f);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vbData[i].Tu0&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;i;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vbData[i].Tv0&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;i;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">Unlock&nbsp;the&nbsp;vb&nbsp;before&nbsp;you&nbsp;can&nbsp;use&nbsp;it&nbsp;elsewhere</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vb.Unlock();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">This&nbsp;lock&nbsp;overload&nbsp;simply&nbsp;locks&nbsp;the&nbsp;entire&nbsp;VB&nbsp;--&nbsp;setting&nbsp;ReadOnly&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">can&nbsp;improve&nbsp;perf&nbsp;when&nbsp;reading&nbsp;a&nbsp;vertexbuffer</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vbData&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(PositionNormalTexVertex[])&nbsp;vb.Lock(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,&nbsp;LockFlags.ReadOnly);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;&nbsp;i</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">;&nbsp;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_1284_1406_Open_Image onclick="this.style.display='none'; Codehighlighter1_1284_1406_Open_Text.style.display='none'; Codehighlighter1_1284_1406_Closed_Image.style.display='inline'; Codehighlighter1_1284_1406_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1284_1406_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1284_1406_Closed_Text.style.display='none'; Codehighlighter1_1284_1406_Open_Image.style.display='inline'; Codehighlighter1_1284_1406_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_1284_1406_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_1284_1406_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">read&nbsp;some&nbsp;vertex&nbsp;data</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Vertex&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Tu:&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;&nbsp;vbData[i].Tu0&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;,&nbsp;Tv:&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;vbData[i].Tv0);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">Unlock&nbsp;the&nbsp;buffer</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vb.Unlock();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vb.Dispose();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span></div><img src ="http://www.cppblog.com/mzty/aggbug/8343.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/mzty/" target="_blank">梦在天涯</a> 2006-06-09 16:39 <a href="http://www.cppblog.com/mzty/archive/2006/06/09/8343.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Managed directx -----the different of transformed vertex and untransformed vertex</title><link>http://www.cppblog.com/mzty/archive/2006/06/09/8341.html</link><dc:creator>梦在天涯</dc:creator><author>梦在天涯</author><pubDate>Fri, 09 Jun 2006 08:33:00 GMT</pubDate><guid>http://www.cppblog.com/mzty/archive/2006/06/09/8341.html</guid><wfw:comment>http://www.cppblog.com/mzty/comments/8341.html</wfw:comment><comments>http://www.cppblog.com/mzty/archive/2006/06/09/8341.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/mzty/comments/commentRss/8341.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mzty/services/trackbacks/8341.html</trackback:ping><description><![CDATA[transformed  vertex :  默认的有视口,不需要再建立camara.<br /><br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> OnCreateVertexBuffer(</span><span style="COLOR: #0000ff">object</span><span style="COLOR: #000000"> sender, EventArgs e)<br /><img id="Codehighlighter1_63_634_Open_Image" onclick="this.style.display='none'; Codehighlighter1_63_634_Open_Text.style.display='none'; Codehighlighter1_63_634_Closed_Image.style.display='inline'; Codehighlighter1_63_634_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_63_634_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_63_634_Closed_Text.style.display='none'; Codehighlighter1_63_634_Open_Image.style.display='inline'; Codehighlighter1_63_634_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top" />        </span><span id="Codehighlighter1_63_634_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/images/dot.gif" /></span><span id="Codehighlighter1_63_634_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            VertexBuffer vb </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> (VertexBuffer)sender;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            GraphicsStream stm </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> vb.Lock(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            CustomVertex.TransformedColored[] verts </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> CustomVertex.TransformedColored[</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">];<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            verts[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">].X</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">150</span><span style="COLOR: #000000">;verts[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">].Y</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">50</span><span style="COLOR: #000000">;verts[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">].Z</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0.5f</span><span style="COLOR: #000000">; verts[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">].Rhw</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">; verts[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">].Color </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> System.Drawing.Color.Red.ToArgb();<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            verts[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">].X</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">250</span><span style="COLOR: #000000">;verts[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">].Y</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">250</span><span style="COLOR: #000000">;verts[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">].Z</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0.5f</span><span style="COLOR: #000000">; verts[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">].Rhw</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">; verts[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">].Color </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> System.Drawing.Color.Yellow.ToArgb();<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            verts[</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">].X</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">50</span><span style="COLOR: #000000">;verts[</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">].Y</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">250</span><span style="COLOR: #000000">;verts[</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">].Z</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0.5f</span><span style="COLOR: #000000">; verts[</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">].Rhw</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">; verts[</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">].Color </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> System.Drawing.Color.SkyBlue.ToArgb();<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            stm.Write(verts);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            vb.Unlock();<br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />        }</span></span><span style="COLOR: #000000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> Render()<br /><img id="Codehighlighter1_662_1119_Open_Image" onclick="this.style.display='none'; Codehighlighter1_662_1119_Open_Text.style.display='none'; Codehighlighter1_662_1119_Closed_Image.style.display='inline'; Codehighlighter1_662_1119_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_662_1119_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_662_1119_Closed_Text.style.display='none'; Codehighlighter1_662_1119_Open_Image.style.display='inline'; Codehighlighter1_662_1119_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top" />        </span><span id="Codehighlighter1_662_1119_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/images/dot.gif" /></span><span id="Codehighlighter1_662_1119_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (device </span><span style="COLOR: #000000">==</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">) <br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">Clear the backbuffer to a blue color (ARGB = 000000ff)</span><span style="COLOR: #008000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">            device.Clear(ClearFlags.Target, System.Drawing.Color.Blue, </span><span style="COLOR: #000000">1.0f</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">Begin the scene</span><span style="COLOR: #008000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">            device.BeginScene();<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            <br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            device.SetStreamSource( </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">, vertexBuffer, </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            device.VertexFormat </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> CustomVertex.TransformedColored.Format;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            device.DrawPrimitives(PrimitiveType.TriangleList, </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">End the scene</span><span style="COLOR: #008000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">            device.EndScene();<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            device.Present();<br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />        }</span></span></div><br /><br />untransformed vertex : 必须的manual建立camare去显示<br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> OnCreateVertexBuffer(</span><span style="COLOR: #0000ff">object</span><span style="COLOR: #000000"> sender, EventArgs e)<br /><img id="Codehighlighter1_63_561_Open_Image" onclick="this.style.display='none'; Codehighlighter1_63_561_Open_Text.style.display='none'; Codehighlighter1_63_561_Closed_Image.style.display='inline'; Codehighlighter1_63_561_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_63_561_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_63_561_Closed_Text.style.display='none'; Codehighlighter1_63_561_Open_Image.style.display='inline'; Codehighlighter1_63_561_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top" />        </span><span id="Codehighlighter1_63_561_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/images/dot.gif" /></span><span id="Codehighlighter1_63_561_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            VertexBuffer vb </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> (VertexBuffer)sender;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            CustomVertex.PositionColored[] verts </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> (CustomVertex.PositionColored[])vb.Lock(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            verts[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">].X</span><span style="COLOR: #000000">=-</span><span style="COLOR: #000000">1.0f</span><span style="COLOR: #000000">; verts[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">].Y</span><span style="COLOR: #000000">=-</span><span style="COLOR: #000000">1.0f</span><span style="COLOR: #000000">; verts[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">].Z</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0.0f</span><span style="COLOR: #000000">; verts[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">].Color </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> System.Drawing.Color.DarkGoldenrod.ToArgb();<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            verts[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">].X</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1.0f</span><span style="COLOR: #000000">; verts[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">].Y</span><span style="COLOR: #000000">=-</span><span style="COLOR: #000000">1.0f</span><span style="COLOR: #000000"> ;verts[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">].Z</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0.0f</span><span style="COLOR: #000000">; verts[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">].Color </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> System.Drawing.Color.MediumOrchid.ToArgb();<br /><img src