??xml version="1.0" encoding="utf-8" standalone="yes"?>久久人人爽人人澡人人高潮AV ,久久亚洲天堂,久久影视国产亚洲http://www.shnenglu.com/mybios/archive/2006/11/18/15330.html李锦?/dc:creator>李锦?/author>Sat, 18 Nov 2006 01:06:00 GMThttp://www.shnenglu.com/mybios/archive/2006/11/18/15330.htmlhttp://www.shnenglu.com/mybios/comments/15330.htmlhttp://www.shnenglu.com/mybios/archive/2006/11/18/15330.html#Feedback0http://www.shnenglu.com/mybios/comments/commentRss/15330.htmlhttp://www.shnenglu.com/mybios/services/trackbacks/15330.html׃非计机专业毕业,对于一些经典有用的法不是很了?最q在|上看了些关于寻路算法的,虽然没有立刻拿来所具体的项?对于qx的一些思维q是很有?高的用法还需l箋探烦.

用A*法寻\有个比较郁闷的问题,虽然每一步都可以选择到最优\径,但是q不是v点到l点的最优\径,特别是在有障物的时候,可以饶开障碍物,但也会走“冤枉\”?/p>

我个为的解决ҎQ?/p>

1、确定障范围。障物所围成的凸多边形内的可走\径会成ؓ“冤枉\”的陷阱?/p>

2、障物所围成的凸多边形的众横向g伸范围应Z可走优先U?/p>

下图中,红色的U是用A*法做的Q很明显Q不是最优\径,l色和色是两条最优\径,但是黑色如果都到当前的位|它应该怎么选择下一步呢Q?/p>

或则通过计算Q如果在某\径下遇到不合理情况(代h+目标距离大于了前一步的代h+目标距离Q,那么退回到前一个岔口选择另一个\径,但是q样的计会比较复杂Q而且在\径长q且障碍多的时候效率会很低?/p>

以下是在|上扑ֈ的一比较简要明了的文章

如果通过囑փ模拟搜烦点,可以发现Q非启发式的寻\法实际上是一U穷举法Q通过固定序依次搜烦人物周围的\点,直到扑ֈ目的圎ͼ搜烦点在囑փ上的表现Z个不断扩大的矩Ş。如下:

   

 

很快Z发现如此IDD搜烦速度q慢Q而且不是很符合逻辑Q试惻I如果要从Q?Q?Q点到达Q?00Q?Q点Q如果每ơ向东搜索时能够走通,那么q吗q要搜烦其他方向呢?所以,出现了启发式的A*寻\法Q一般通过 已经走过的\E?+ 到达目的地的直线距离 代hg为搜索时的启发条Ӟ每个点徏立一个代价|每次搜烦时就从代价低的最先搜索,如下Q?/span>

   

lg所qͼ以上的搜索是一U矩阵式的不断Dl点的搜索做法。优Ҏ比较直观Q缺点在于距越q、搜索时间越ѝ?o:p>



]]>
【{贴】几个物体的Ud补间插值函?/title><link>http://www.shnenglu.com/mybios/archive/2006/11/17/15321.html</link><dc:creator>李锦?/dc:creator><author>李锦?/author><pubDate>Fri, 17 Nov 2006 14:27:00 GMT</pubDate><guid>http://www.shnenglu.com/mybios/archive/2006/11/17/15321.html</guid><wfw:comment>http://www.shnenglu.com/mybios/comments/15321.html</wfw:comment><comments>http://www.shnenglu.com/mybios/archive/2006/11/17/15321.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/mybios/comments/commentRss/15321.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/mybios/services/trackbacks/15321.html</trackback:ping><description><![CDATA[J体?font color="#008000">間補</font>Q也是我们常说的补间插|或者线性插倹{?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.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #008000">//</span><span style="COLOR: #008000">=====================================</span><span style="COLOR: #008000"><br /><img id="Codehighlighter1_40_167_Open_Image" onclick="this.style.display='none'; Codehighlighter1_40_167_Open_Text.style.display='none'; Codehighlighter1_40_167_Closed_Image.style.display='inline'; Codehighlighter1_40_167_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_40_167_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_40_167_Closed_Text.style.display='none'; Codehighlighter1_40_167_Open_Image.style.display='inline'; Codehighlighter1_40_167_Open_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_40_167_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_40_167_Open_Text"><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">*<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />{速運動用的間?br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />@param start [in] 起點<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />@param end  [in] i點<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />@param all  [in] 起點到終點經過的時間<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />@param now  [in] 珑֜時間<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />@return 以now為基C的間補?br /><img src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" /></span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">=====================================</span><span style="COLOR: #008000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">float</span><span style="COLOR: #000000"> FlatSpeed( </span><span style="COLOR: #0000ff">float</span><span style="COLOR: #000000"> start, </span><span style="COLOR: #0000ff">float</span><span style="COLOR: #000000"> end, </span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000"> all, </span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000"> now )<br /><img id="Codehighlighter1_271_319_Open_Image" onclick="this.style.display='none'; Codehighlighter1_271_319_Open_Text.style.display='none'; Codehighlighter1_271_319_Closed_Image.style.display='inline'; Codehighlighter1_271_319_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_271_319_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_271_319_Closed_Text.style.display='none'; Codehighlighter1_271_319_Open_Image.style.display='inline'; Codehighlighter1_271_319_Open_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_271_319_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.shnenglu.com/images/dot.gif" /></span><span id="Codehighlighter1_271_319_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> (start </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> ((end </span><span style="COLOR: #000000">-</span><span style="COLOR: #000000"> start) </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> now </span><span style="COLOR: #000000">/</span><span style="COLOR: #000000"> all));<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">=============================================</span><span style="COLOR: #008000"><br /><img id="Codehighlighter1_370_497_Open_Image" onclick="this.style.display='none'; Codehighlighter1_370_497_Open_Text.style.display='none'; Codehighlighter1_370_497_Closed_Image.style.display='inline'; Codehighlighter1_370_497_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_370_497_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_370_497_Closed_Text.style.display='none'; Codehighlighter1_370_497_Open_Image.style.display='inline'; Codehighlighter1_370_497_Open_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_370_497_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_370_497_Open_Text"><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">*<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />加速運動用的間?br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />@param start [in] 起點<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />@param end  [in] i點<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />@param all  [in] 起點到終點經過的時間<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />@param now  [in] 珑֜時間<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />@return 以now為基C的間補?br /><img src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" /></span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">===========================================</span><span style="COLOR: #008000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">float</span><span style="COLOR: #000000"> AddSpeed( </span><span style="COLOR: #0000ff">float</span><span style="COLOR: #000000"> start, </span><span style="COLOR: #0000ff">float</span><span style="COLOR: #000000"> end, </span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000"> all, </span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000"> now )<br /><img id="Codehighlighter1_606_705_Open_Image" onclick="this.style.display='none'; Codehighlighter1_606_705_Open_Text.style.display='none'; Codehighlighter1_606_705_Closed_Image.style.display='inline'; Codehighlighter1_606_705_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_606_705_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_606_705_Closed_Text.style.display='none'; Codehighlighter1_606_705_Open_Image.style.display='inline'; Codehighlighter1_606_705_Open_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_606_705_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.shnenglu.com/images/dot.gif" /></span><span id="Codehighlighter1_606_705_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> ( (start)</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">((end)</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">(start)) </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> (((           (now)</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">(now))</span><span style="COLOR: #000000">>></span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">) </span><span style="COLOR: #000000">/</span><span style="COLOR: #000000"> ((((all)</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">(all))</span><span style="COLOR: #000000">>></span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">) );<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">=============================================</span><span style="COLOR: #008000"><br /><img id="Codehighlighter1_756_883_Open_Image" onclick="this.style.display='none'; Codehighlighter1_756_883_Open_Text.style.display='none'; Codehighlighter1_756_883_Closed_Image.style.display='inline'; Codehighlighter1_756_883_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_756_883_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_756_883_Closed_Text.style.display='none'; Codehighlighter1_756_883_Open_Image.style.display='inline'; Codehighlighter1_756_883_Open_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_756_883_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_756_883_Open_Text"><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">*<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />減速運動用的間?br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />@param start [in] 起點<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />@param end  [in] i點<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />@param all  [in] 起點到終點經過的時間<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />@param now  [in] 珑֜時間<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />@return 以now為基C的間補?br /><img src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" /></span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">============================================</span><span style="COLOR: #008000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">float</span><span style="COLOR: #000000"> SubSpeed( </span><span style="COLOR: #0000ff">float</span><span style="COLOR: #000000"> start, </span><span style="COLOR: #0000ff">float</span><span style="COLOR: #000000"> end, </span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000"> all, </span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000"> now )<br /><img id="Codehighlighter1_993_1093_Open_Image" onclick="this.style.display='none'; Codehighlighter1_993_1093_Open_Text.style.display='none'; Codehighlighter1_993_1093_Closed_Image.style.display='inline'; Codehighlighter1_993_1093_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_993_1093_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_993_1093_Closed_Text.style.display='none'; Codehighlighter1_993_1093_Open_Image.style.display='inline'; Codehighlighter1_993_1093_Open_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_993_1093_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.shnenglu.com/images/dot.gif" /></span><span id="Codehighlighter1_993_1093_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> ( (start)</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">((end)</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">(start)) </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> (((((all)</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">(now)</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">(now))</span><span style="COLOR: #000000">>></span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">) </span><span style="COLOR: #000000">/</span><span style="COLOR: #000000"> ((((all)</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">(all))</span><span style="COLOR: #000000">>></span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">) );<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">==============================================</span><span style="COLOR: #008000"><br /><img id="Codehighlighter1_1145_1261_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1145_1261_Open_Text.style.display='none'; Codehighlighter1_1145_1261_Closed_Image.style.display='inline'; Codehighlighter1_1145_1261_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_1145_1261_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1145_1261_Closed_Text.style.display='none'; Codehighlighter1_1145_1261_Open_Image.style.display='inline'; Codehighlighter1_1145_1261_Open_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_1145_1261_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_1145_1261_Open_Text"><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">*<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />Bezier用的間補a算<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />@param p1 [in] 起點<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />@param p2 [in] 中間?br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />@param p3 [in] i點<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />@param t [in] 珑֜的時?0?)<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />@return  在t斚w的?br /><img src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" /></span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">============================================</span><span style="COLOR: #008000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">float</span><span style="COLOR: #000000"> Bezier( </span><span style="COLOR: #0000ff">float</span><span style="COLOR: #000000"> p1, </span><span style="COLOR: #0000ff">float</span><span style="COLOR: #000000"> p2, </span><span style="COLOR: #0000ff">float</span><span style="COLOR: #000000"> p3, </span><span style="COLOR: #0000ff">float</span><span style="COLOR: #000000"> t )<br /><img id="Codehighlighter1_1364_1423_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1364_1423_Open_Text.style.display='none'; Codehighlighter1_1364_1423_Closed_Image.style.display='inline'; Codehighlighter1_1364_1423_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_1364_1423_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1364_1423_Closed_Text.style.display='none'; Codehighlighter1_1364_1423_Open_Image.style.display='inline'; Codehighlighter1_1364_1423_Open_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_1364_1423_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.shnenglu.com/images/dot.gif" /></span><span id="Codehighlighter1_1364_1423_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> ( ((</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">t)</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">t)</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">p1) </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> (</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">t)</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">t</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">p2) </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> (t</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">t</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">p3) );<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">===========================================</span><span style="COLOR: #008000"><br /><img id="Codehighlighter1_1472_1589_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1472_1589_Open_Text.style.display='none'; Codehighlighter1_1472_1589_Closed_Image.style.display='inline'; Codehighlighter1_1472_1589_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_1472_1589_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1472_1589_Closed_Text.style.display='none'; Codehighlighter1_1472_1589_Open_Image.style.display='inline'; Codehighlighter1_1472_1589_Open_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_1472_1589_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_1472_1589_Open_Text"><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">*<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />Neville用的間補a算<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />@param p1 [in] 起點<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />@param p2 [in] 中間?br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />@param p3 [in] i點<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />@param t [in] 珑֜的時?0?)<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />@return  在t斚w的?br /><img src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" /></span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">=========================================</span><span style="COLOR: #008000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">float</span><span style="COLOR: #000000"> Neville( </span><span style="COLOR: #0000ff">float</span><span style="COLOR: #000000"> p1, </span><span style="COLOR: #0000ff">float</span><span style="COLOR: #000000"> p2, </span><span style="COLOR: #0000ff">float</span><span style="COLOR: #000000"> p3, </span><span style="COLOR: #0000ff">float</span><span style="COLOR: #000000"> t )<br /><img id="Codehighlighter1_1690_1814_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1690_1814_Open_Text.style.display='none'; Codehighlighter1_1690_1814_Closed_Image.style.display='inline'; Codehighlighter1_1690_1814_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_1690_1814_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1690_1814_Closed_Text.style.display='none'; Codehighlighter1_1690_1814_Open_Image.style.display='inline'; Codehighlighter1_1690_1814_Open_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_1690_1814_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.shnenglu.com/images/dot.gif" /></span><span id="Codehighlighter1_1690_1814_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />t </span><span style="COLOR: #000000">*=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">;<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />p1 </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> p2 </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> ( p2 </span><span style="COLOR: #000000">-</span><span style="COLOR: #000000"> p1 ) </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> ( t </span><span style="COLOR: #000000">-</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">1</span><span style="COLOR: #000000"> );<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />p2 </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> p3 </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> ( p3 </span><span style="COLOR: #000000">-</span><span style="COLOR: #000000"> p2 ) </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> ( t </span><span style="COLOR: #000000">-</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">2</span><span style="COLOR: #000000"> );<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> p2 </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> ( p2 </span><span style="COLOR: #000000">-</span><span style="COLOR: #000000"> p1 ) </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> ( t </span><span style="COLOR: #000000">-</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">2</span><span style="COLOR: #000000"> ) </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0.5f</span><span style="COLOR: #000000">;<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div><img src ="http://www.shnenglu.com/mybios/aggbug/15321.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/mybios/" target="_blank">李锦?/a> 2006-11-17 22:27 <a href="http://www.shnenglu.com/mybios/archive/2006/11/17/15321.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【原创】?D数学基础Q图形与游戏开发》读书笔?http://www.shnenglu.com/mybios/archive/2006/11/17/15302.html李锦?/dc:creator>李锦?/author>Fri, 17 Nov 2006 09:09:00 GMThttp://www.shnenglu.com/mybios/archive/2006/11/17/15302.htmlhttp://www.shnenglu.com/mybios/comments/15302.htmlhttp://www.shnenglu.com/mybios/archive/2006/11/17/15302.html#Feedback5http://www.shnenglu.com/mybios/comments/commentRss/15302.htmlhttp://www.shnenglu.com/mybios/services/trackbacks/15302.html阅读全文

]]>
【原创】计Bezier曲线的线性插值点的函?/title><link>http://www.shnenglu.com/mybios/archive/2006/11/17/15298.html</link><dc:creator>李锦?/dc:creator><author>李锦?/author><pubDate>Fri, 17 Nov 2006 08:16:00 GMT</pubDate><guid>http://www.shnenglu.com/mybios/archive/2006/11/17/15298.html</guid><wfw:comment>http://www.shnenglu.com/mybios/comments/15298.html</wfw:comment><comments>http://www.shnenglu.com/mybios/archive/2006/11/17/15298.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.shnenglu.com/mybios/comments/commentRss/15298.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/mybios/services/trackbacks/15298.html</trackback:ping><description><![CDATA[ <p> </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.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000"> 计算Bezier曲线的线性插值点<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">D3DXVECTOR3 *vecPoint1 W?个Bezier关键?br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">D3DXVECTOR3 *vecPoint2 W?个Bezier关键?br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">D3DXVECTOR3 *vecPoint3 W?个Bezier关键?br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">D3DXVECTOR3 *vecPoint4 W?个Bezier关键?br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">float Scalar    要计插值的Ҏ在的位置Q??Q        ?br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">D3DXVECTOR3 *vecOut  输出?D坐标</span> <span style="COLOR: #008000"> <br /> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> </span> <span style="COLOR: #0000ff">void</span> <span style="COLOR: #000000"> CubicBezierCurve(D3DXVECTOR3 </span> <span style="COLOR: #000000">*</span> <span style="COLOR: #000000">vecPoint1,<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />                      D3DXVECTOR3 </span> <span style="COLOR: #000000">*</span> <span style="COLOR: #000000">vecPoint2,<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />                      D3DXVECTOR3 </span> <span style="COLOR: #000000">*</span> <span style="COLOR: #000000">vecPoint3,<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />                      D3DXVECTOR3 </span> <span style="COLOR: #000000">*</span> <span style="COLOR: #000000">vecPoint4,<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />                      </span> <span style="COLOR: #0000ff">float</span> <span style="COLOR: #000000"> Scalar, <br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />                      D3DXVECTOR3 </span> <span style="COLOR: #000000">*</span> <span style="COLOR: #000000">vecOut)<br /><img id="Codehighlighter1_512_850_Open_Image" onclick="this.style.display='none'; Codehighlighter1_512_850_Open_Text.style.display='none'; Codehighlighter1_512_850_Closed_Image.style.display='inline'; Codehighlighter1_512_850_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_512_850_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_512_850_Closed_Text.style.display='none'; Codehighlighter1_512_850_Open_Image.style.display='inline'; Codehighlighter1_512_850_Open_Text.style.display='inline';" src="http://www.shnenglu.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span> <span id="Codehighlighter1_512_850_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.shnenglu.com/images/dot.gif" /> </span> <span id="Codehighlighter1_512_850_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />  </span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000"> C(s) =</span> <span style="COLOR: #008000"> <br /> <img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" /> </span> <span style="COLOR: #000000">  </span> <span style="COLOR: #000000">*</span> <span style="COLOR: #000000">vecOut </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> <br /> <img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000"> P0 * (1 - s)3 +</span> <span style="COLOR: #008000"> <br /> <img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" /> </span> <span style="COLOR: #000000">    (</span> <span style="COLOR: #000000">*</span> <span style="COLOR: #000000">vecPoint1)</span> <span style="COLOR: #000000">*</span> <span style="COLOR: #000000">(</span> <span style="COLOR: #000000">1.0f</span> <span style="COLOR: #000000">-</span> <span style="COLOR: #000000">Scalar)</span> <span style="COLOR: #000000">*</span> <span style="COLOR: #000000">(</span> <span style="COLOR: #000000">1.0f</span> <span style="COLOR: #000000">-</span> <span style="COLOR: #000000">Scalar)</span> <span style="COLOR: #000000">*</span> <span style="COLOR: #000000">(</span> <span style="COLOR: #000000">1.0f</span> <span style="COLOR: #000000">-</span> <span style="COLOR: #000000">Scalar) </span> <span style="COLOR: #000000">+</span> <span style="COLOR: #000000"> <br /> <img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000"> P1 * 3 * s * (1 - s)2 +</span> <span style="COLOR: #008000"> <br /> <img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" /> </span> <span style="COLOR: #000000">    (</span> <span style="COLOR: #000000">*</span> <span style="COLOR: #000000">vecPoint2)</span> <span style="COLOR: #000000">*</span> <span style="COLOR: #000000">3.0f</span> <span style="COLOR: #000000">*</span> <span style="COLOR: #000000">Scalar</span> <span style="COLOR: #000000">*</span> <span style="COLOR: #000000">(</span> <span style="COLOR: #000000">1.0f</span> <span style="COLOR: #000000">-</span> <span style="COLOR: #000000">Scalar)</span> <span style="COLOR: #000000">*</span> <span style="COLOR: #000000">(</span> <span style="COLOR: #000000">1.0f</span> <span style="COLOR: #000000">-</span> <span style="COLOR: #000000">Scalar) </span> <span style="COLOR: #000000">+</span> <span style="COLOR: #000000"> <br /> <img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000"> P2 * 3 * s2 * (1 - s) +</span> <span style="COLOR: #008000"> <br /> <img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" /> </span> <span style="COLOR: #000000">    (</span> <span style="COLOR: #000000">*</span> <span style="COLOR: #000000">vecPoint3)</span> <span style="COLOR: #000000">*</span> <span style="COLOR: #000000">3.0f</span> <span style="COLOR: #000000">*</span> <span style="COLOR: #000000">Scalar</span> <span style="COLOR: #000000">*</span> <span style="COLOR: #000000">Scalar</span> <span style="COLOR: #000000">*</span> <span style="COLOR: #000000">(</span> <span style="COLOR: #000000">1.0f</span> <span style="COLOR: #000000">-</span> <span style="COLOR: #000000">Scalar) </span> <span style="COLOR: #000000">+</span> <span style="COLOR: #000000"> <br /> <img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000"> P3 * s3 </span> <span style="COLOR: #008000"> <br /> <img src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" /> </span> <span style="COLOR: #000000">    (</span> <span style="COLOR: #000000">*</span> <span style="COLOR: #000000">vecPoint4)</span> <span style="COLOR: #000000">*</span> <span style="COLOR: #000000">Scalar</span> <span style="COLOR: #000000">*</span> <span style="COLOR: #000000">Scalar</span> <span style="COLOR: #000000">*</span> <span style="COLOR: #000000">Scalar;<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span> </span> </div> <img src ="http://www.shnenglu.com/mybios/aggbug/15298.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/mybios/" target="_blank">李锦?/a> 2006-11-17 16:16 <a href="http://www.shnenglu.com/mybios/archive/2006/11/17/15298.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【{贴】了解凹凸映Bump Map技术的内幕http://www.shnenglu.com/mybios/archive/2006/11/17/15272.html李锦?/dc:creator>李锦?/author>Thu, 16 Nov 2006 16:00:00 GMThttp://www.shnenglu.com/mybios/archive/2006/11/17/15272.htmlhttp://www.shnenglu.com/mybios/comments/15272.htmlhttp://www.shnenglu.com/mybios/archive/2006/11/17/15272.html#Feedback0http://www.shnenglu.com/mybios/comments/commentRss/15272.htmlhttp://www.shnenglu.com/mybios/services/trackbacks/15272.htmlq里阅读全文  阅读全文

]]>
【{贴】OCTREE 教程http://www.shnenglu.com/mybios/archive/2006/11/17/15273.html李锦?/dc:creator>李锦?/author>Thu, 16 Nov 2006 16:00:00 GMThttp://www.shnenglu.com/mybios/archive/2006/11/17/15273.htmlhttp://www.shnenglu.com/mybios/comments/15273.htmlhttp://www.shnenglu.com/mybios/archive/2006/11/17/15273.html#Feedback0http://www.shnenglu.com/mybios/comments/commentRss/15273.htmlhttp://www.shnenglu.com/mybios/services/trackbacks/15273.html
  OCTREE 是对3DI间q行划分Q也可以叫空间分剌Ӏ他允许你只对你?D世界中摄象机照射的区域进行作甅R他也能用于冲突。下面讲一下ؓ什么要q行I间分割。假设你建立了一个游戏世界,q个世界有超q?00Q?00个多边Ş要画。如果你建立一个@环ƈ传递这些多边ŞQ那速度是很慢的。即使你有一块很好的昄卡,他也会有很大的麻烦。但是玩你游戏的玩家的显C卡不会过300$。有没有一U方法只渲染摄象机看见的多边形?那就是美丽的OCTREE。他允许你快速的扑ֈ你要渲染的多边Ş...............阅读全文  阅读全文

]]>
【{贴】矩늚本质-q动的描q?/title><link>http://www.shnenglu.com/mybios/archive/2006/11/16/15222.html</link><dc:creator>李锦?/dc:creator><author>李锦?/author><pubDate>Thu, 16 Nov 2006 07:01:00 GMT</pubDate><guid>http://www.shnenglu.com/mybios/archive/2006/11/16/15222.html</guid><wfw:comment>http://www.shnenglu.com/mybios/comments/15222.html</wfw:comment><comments>http://www.shnenglu.com/mybios/archive/2006/11/16/15222.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.shnenglu.com/mybios/comments/commentRss/15222.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/mybios/services/trackbacks/15222.html</trackback:ping><description><![CDATA[前不久chenshZ不可告h的目的,要充当老师Q教别hU性代数。于是我被揪住就U性代C一些务虚性的问题与他讨论了几ơ。很明显Qchensh觉得Q要让自己在讲线性代数的时候不被那位强势的学生认ؓ是神l病Q还是比较难的事情?br /><font size="3">可怜的chenshQ谁让你这个地雷阵Q!色o智昏啊!</font><br /><font size="3">U性代数课E,无论你从行列式入手还是直接从矩阵入手Q从一开始就充斥着莫名其妙。比如说Q在全国一般工U院pL学中应用最q泛的同线性代数教材(现在CW四版)Q一上来׃l逆序数这个“前无古人,后无来者”的古怪概念,然后用逆序数给列式的一个极不直观的定义Q接着是一些简直犯ȝ行列式性质和习题——把q行乘一个系数加到另一行上Q再把那一列减q来Q折腑־那叫一个热闹,可就是压根看不出q个东西有嘛用。大多数像我一栯质^庸的学生到这里就有点犯晕Q连q是个什么东襉K模模p糊的,开始钻火圈表演了,q未免太“无厘头”了吧!于是开始有人逃课Q更多的人开始抄作业。这下就中招了,因ؓ其后的发展可以用一句峰回\转来形容Q紧跟着q个无厘头的行列式的Q是一个同h厘头但是伟大的无以复加的家伙的出场——矩阉|了!多年之后Q我才明白,当老师犯傻似地用中括号把一堆傻了吧叽的数括hQƈ且不紧不慢地_“这个东西叫做矩阵”的时候,我的数学生掀开了何{悲壮辛酸、惨lh寰的一q!自那以后Q在几乎所有跟“学问”二字稍微沾点边的东襉KQ矩阵这个家伙从不缺席。对于我q个没能一ơ搞定线性代数的W蛋来说Q矩阵老大的不误来每每搞得我灰头土脸Q头破血。长期以来,我在阅读中一见矩阵,如同阿Q见到了假z鬼子,揉揉额角q道走?/font><br /><font size="3">事实上,我ƈ不是特例。一般工U学生初学线性代敎ͼ通常都会感到困难。这U情形在国内外皆然。瑞典数学家Lars Garding在其名著Encounter with Mathematics中说Q?font color="#ff0000"><b>如果不熟悉线性代数的概念Q要d习自然科学,现在看来和文盲差不多?/b></font>”,然?b><font color="#ff0000">“按照现行的国际标准Q线性代数是通过公理化来表述的,它是W二代数学模型,...Q这带来了教学上的困难。?/font></b>事实上,当我们开始学习线性代数的时候,不知不觉p入了“第二代数学模型”的范畴当中Q这意味着数学的表q方式和抽象性有了一ơ全面的q化Q对于从一直在“第一代数学模型”,即以实用为导向的、具体的数学模型中学习的我们来说Q在没有q明告知的情况下进行如此剧烈的paradigm shiftQ不感到困难才是奇怪的?/font><br /><font size="3">大部分工U学生,往往是在学习了一些后l课E,如数值分析、数学规划、矩阵论之后Q才逐渐能够理解和熟l运用线性代数。即便如此,不少人即使能够很熟练CU性代Cؓ工具q行U研和应用工作,但对于很多这门课E的初学者提出的、看上去是很基础的问题却q不清楚。比如说Q?/font><br /><font size="3"><font color="#0000ff"><b>* 矩阵I竟是什么东西?向量可以被认为是hn个相互独立的性质Q维度)的对象的表示Q矩阵又是什么呢Q我们如果认为矩阉|一l列Q行Q向量组成的新的复合向量的展开式,那么Z么这U展开式具有如此广泛的应用Q特别是Qؓ什么偏偏二l的展开式如此有用?如果矩阵中每一个元素又是一个向量,那么我们再展开一ơ,变成三维的立斚wQ是不是更有用?</b></font></font><br /><font size="3"><font color="#0000ff"><b>* 矩阵的乘法规则究竟ؓ什么这栯定?Z么这样一U怪异的乘法规则却能够在实践中发挥如此巨大的功效?很多看上M乎是完全不相关的问题Q最后竟焉归结到矩늚乘法Q这N不是很奇妙的事情Q难道在矩阵乘法那看上去莫名其妙的规则下面,包含着世界的某些本质规律?如果是的话,q些本质规律是什么?</b></font></font><br /><font size="3"><font color="#0000ff"><b>* 行列式究竟是一个什么东西?Z么会有如此怪异的计规则?行列式与其对应方阉|质上是什么关p?Z么只有方阉|有对应的行列式,而一般矩阵就没有Q不要觉得这个问题很蠢,如果必要Q针对m x n矩阵定义行列式不是做不到的,之所以不做,是因为没有这个必要,但是Z么没有这个必要)Q而且Q行列式的计规则,看上去跟矩阵的Q何计规则都没有直观的联p,Z么又在很多方面决定了矩阵的性质Q难道这一切仅是y合?</b></font></font><br /><font size="3"><font color="#0000ff"><b>* 矩阵Z么可以分块计?分块计算qg事情看上L那么随意Qؓ什么竟是可行的Q?/b></font></font><br /><font size="3"><font color="#0000ff"><b>* 对于矩阵转置q算ATQ有(AB)T = BTATQ对于矩阉|逆运A-1Q有(AB)-1 = B-1A-1。两个看上去完全没有什么关pȝq算Qؓ什么有着cM的性质Q这仅仅是y合吗Q?/b></font></font><br /><font size="3"><font color="#0000ff"><b>* Z么说P-1AP得到的矩阵与A矩阵“相似”?q里的“相似”是什么意思?</b></font></font><br /><font size="3"><font color="#0000ff"><b>* 特征值和特征向量的本质是什么?它们定义p人很惊讶Q因为Ax =λxQ一个诺大的矩阵的效应,竟然不过相当于一个小的数λ,实有点奇妙。但何至于用“特征”甚至“本征”来界定Q它们刻划的I竟是什么?</b></font></font><br /><font size="3">q样的一c问题,l常让用线性代数已l很多年的h都感Cؓ难。就好像大h面对孩子的刨根问底Q最后Mq不得已地说“就q样吧,到此为止”一P面对q样的问题,很多老手们最后也只能用:“就是这么规定的Q你接受q且C好”来搪塞。然而,q样的问题如果不能获得回{,U性代数对于我们来说就是一个粗暴的、不讲道理的、莫名其妙的规则集合Q我们会感到Q自己ƈ不是在学习一门学问,而是被不由分说地“抛到”一个强制的世界中,只是在考试的皮鞭挥舞之下被q赶路,全然无法领略其中的美妙、和谐与l一。直到多q以后,我们已经发觉q门学问如此的有用,却仍然会非常qhQ怎么q么凑yQ?/font><br /><font size="3">我认为,q是我们的线性代数教学中直觉性q后果。上q这些涉及到“如何能”、“怎么会”的问题Q仅仅通过Ua的数学证明来回答Q是不能令提问者满意的。比如,如果你通过一般的证明Ҏ了矩阵分块运确实可行,那么qƈ不能够让提问者的疑惑得到解决。他们真正的困惑是:矩阵分块q算Z么竟然是可行的?I竟只是凑yQ还是说q是q阵这U对象的某种本质所必然军_的?如果是后者,那么矩阵的这些本质是什么?只要对上q那些问题稍加考虑Q我们就会发玎ͼ所有这些问题都不是单纯依靠数学证明所能够解决的。像我们的教U书那样Q凡事用数学证明Q最后培d来的学生Q只能熟l地使用工具Q却Ơ缺真正意义上的理解?/font><br /><font size="3">自从1930q代法国布尔巴基学派兴v以来Q数学的公理化、系l性描q已l获得巨大的成功Q这使得我们接受的数学教育在严}性上大大提高。然而数学公理化的一个备受争议的副作用,是一般数学教育中直觉性的丧失。数学家们似乎认为直觉性与抽象性是矛盾的,因此毫不犹U地牺牲掉前者。然而包括我本h在内的很多h都对此表C怀疑,我们不认为直觉性与抽象性一定相互矛盾,特别是在数学教育中和数学教材中,帮助学生建立直觉Q有助于它们理解那些抽象的概念,q而理解数学的本质。反之,如果一x重Ş式上的严格性,学生好像被q进行钻火圈表演的小白鼠一P变成枯燥的规则的奴隶?/font><br /><font size="3">对于U性代数的cM上述所提到的一些直觉性的问题Q两q多来我断断l箋地反复思考了四、五ơ,为此阅读了好几本国内外线性代数、数值分析、代数和数学通论性书c,其中像前苏联的名著《数学:它的内容、方法和意义》、龚昇教授的《线性代C讌Ӏ、前面提到的Encounter with MathematicsQ《数学概观》)以及Thomas A. Garrity的《数学拾遗》都l我很大的启发。不q即使如此,我对q个主题的认识也l历了好几次自我否定。比如以前思考的一些结论曾l写在自qblog里,但是现在看来Q这些结论基本上都是错误的。因此打把自己现在的有关理解比较完整地记录下来Q一斚w是因为我觉得现在的理解比较成熟了Q可以拿出来与别人探讨,向别教。另一斚wQ如果以后再有进一步的认识Q把现在的理解给推翻了,那现在写的这个snapshot也是很有意义的?/font><br /><font size="3">因ؓ打算写得比较多,所以会分几ơ慢慢写。也不知道是不是有时间慢慢写完整Q会不会中断Q写着看吧?/font><br />--------------------------------------------------------------------------<br /><font size="3">今天先谈谈对UŞI间和矩늚几个核心概念的理解。这些东西大部分是凭着自己的理解写出来的,基本上不抄书Q可能有错误的地方,希望能够被指出。但我希望做到直觉,也就是说能把数学背后说的实质问题说出来?/font><br /><font size="3">首先说说I间(space)Q这个概忉|C数学的命根子之一Q从拓扑I间开始,一步步往上加定义Q可以Ş成很多空间。线形空间其实还是比较初U的Q如果在里面定义了范敎ͼ成了赋范线性空间。赋范线性空间满_备性,成了巴那赫I间Q赋范线性空间中定义角度Q就有了内积I间Q内U空间再满完备性,得到希伯特空间?/font><br /><font size="3">MQ空间有很多U。你要是ȝ某种I间的数学定义,大致都是“存在一个集合,在这个集合上定义某某概念Q然后满x些性质”,可以被UCؓI间。这未免有点奇怪,Z么要用“空间”来U呼一些这L集合呢?大家会看到Q其实这是很有道理的?/font><br /><font size="3">我们一般h最熟悉的空_毫无疑问是我们生活在其中的Q按照牛的l对时空观)的三l空_从数学上_q是一个三l的Ƨ几里dI间Q我们先不管那么多,先看看我们熟悉的q样一个空间有些什么最基本的特炏V仔l想x们就会知道,q个三维的空_1. 由很多(实际上是无穷多个Q位|点l成Q?. q些点之间存在相对的关系Q?. 可以在空间中定义长度、角度;4. <b><font color="#ff0000">q个I间可以容纳q动Q这里我们所说的q动是从一个点到另一个点的移动(变换Q,而不是微U分意义上的“连l”性的q动Q?/font></b></font><br /><font size="3">上面的这些性质中,最最关键的是W?条。第1?条只能说是空间的基础Q不是I间Ҏ的性质Q凡是讨论数学问题,都得有一个集合,大多数还得在q个集合上定义一些结构(关系Q,q不是说有了q些q是空间。而第3条太ҎQ其他的I间不需要具备,更不是关键的性质。只有第4条是I间的本质,也就是说Q?b><font color="#ff0000">容纳q动是空间的本质特征?/font></b></font><br /><font size="3">认识Cq些Q我们就可以把我们关于三l空间的认识扩展到其他的I间?b><font color="#ff0000">事实上,不管是什么空_都必dU_支持在其中发生的W合规则的运动(变换Q。你会发玎ͼ在某U空间中往往会存在一U相对应的变换,比如拓扑I间中有拓扑变换Q线性空间中有线性变换,仿射I间中有仿射变换Q其实这些变换都只不q是对应I间中允许的q动形式而已?/font></b></font><br /><font size="3">因此只要知道<b><font color="#ff0000">Q“空间”是容纳q动的一个对象集合,而变换则规定了对应空间的q动?/font></b></font><br /><font size="3">下面我们来看看线性空间。线性空间的定义M一本书上都有,但是既然我们承认U性空间是个空_那么有两个最基本的问题必首先得到解冻I那就是:</font><br /><font size="3">1. I间是一个对象集合,U性空间也是空_所以也是一个对象集合。那么线性空间是什么样的对象的集合Q或者说Q线性空间中的对象有什么共同点吗?</font><br /><font size="3">2. U性空间中的运动如何表q的Q也是Q线性变换是如何表示的?</font><br /><font size="3">我们先来回答W一个问题,回答q个问题的时候其实是不用拐弯抹角的,可以直截了当的给出答案?b><font color="#ff0000">U性空间中的Q何一个对象,通过选取基和坐标的办法,都可以表达ؓ向量的Ş式?/font></b>通常的向量空间我׃说了QD两个不那么^凡的例子Q?/font><br /><font size="3">L1. 最高次不大于nơ的多项式的全体构成一个线性空_也就是说Q这个线性空间中的每一个对象是一个多式。如果我们以x0, x1, ..., xn为基Q那么Q何一个这L多项式都可以表达Zln+1l向量,其中的每一个分量ai其实是多项式中x(i-1)的pL。值得说明的是Q基的选取有多U办法,只要所选取的那一l基U性无兛_可以。这要用到后面提到的概念了,所以这里先不说Q提一下而已?/font><br /><font size="3">L2. 闭区间[a, b]上的n阶连l可微函数的全体Q构成一个线性空间。也是_q个U性空间的每一个对象是一个连l函数。对于其中Q何一个连l函敎ͼҎ尔斯特拉斯定理Q一定可以找到最高次不大于n的多式函数Q之与该连l函数的差ؓ0Q也是_完全相等。这样就把问题归lؓL1了。后面就不用再重复了?/font><br /><font size="3">所以说Q向量是很厉害的Q只要你扑ֈ合适的基,用向量可以表C线性空间里M一个对象。这里头大有文章Q因为向量表面上只是一列数Q但是其实由于它的有序性,所以除了这些数本n携带的信息之外,q可以在每个数的对应位置上携带信息。ؓ什么在E序设计中数l最单,却又威力无穷呢?Ҏ原因在于此。这是另一个问题了Q这里就不说了?/font><br /><font size="3">下面来回{第二个问题Q这个问题的回答会涉及到U性代数的一个最Ҏ的问题?/font><br /><font size="3">U性空间中的运动,被称为线性变换。也是_你从U性空间中的一个点q动CQ意的另外一个点Q都可以通过一个线性变化来完成。那么,U性变换如何表C呢Q?b><font color="#ff0000">很有意思,在线性空间中Q当你选定一l基之后Q不仅可以用一个向量来描述I间中的M一个对象,而且可以用矩阉|描述该空间中的Q何一个运动(变换Q。而某个对象发生对应q动的方法,是用代表那个运动的矩阵Q乘以代表那个对象的向量?/font></b></font><br /><font size="3">而言之,<b><font color="#ff0000">在线性空间中选定Z后,向量ȝ对象Q矩阵刻d象的q动Q用矩阵与向量的乘法施加q动?/font></b></font><br /><font size="3">是的Q矩늚本质是运动的描述。如果以后有人问你矩阉|什么,那么你就可以响亮地告诉他Q?u><b><font color="#ff0000">矩阵的本质是q动的描q?/font></b></u>。(chenshQ说你呢Q)</font><br /><font size="3">可是多么有意思啊Q向量本w不是也可以看成是n x 1矩阵吗?q实在是很奇妙,<b><font color="#ff0000">一个空间中的对象和q动竟然可以用相cd的方式表C?/font></b>能说q是巧合吗?如果是y合的话,那可真是q运的y合!可以_U性代C大多数奇妙的性质Q均与这个y合有直接的关pR?/font><br /><font size="3">接着理解矩阵?/font><br /><br /><font size="3">上面说“矩阉|q动的描q”,到现在ؓ止,好像大家都还没什么意见。但是我怿早晚会有数学pdw的|友来拍板{。因动这个概念,在数学和物理里是跟微U分联系在一L。我们学习微U分的时候,M有h照本宣科地告诉你Q初{数学是研究帔R的数学,是研I态的数学Q高{数学是变量的数学,是研I运动的数学。大家口口相传,差不多h人都知道q句话。但是真知道q句话说的是什么意思的人,好像也不多。简而言之,在我们hcȝl验里,q动是一个连l过E,从A点到B点,q走得最快的光,也是需要一个时间来<b><u>逐点</u></b>地经qAB之间的\径,q就带来了连l性的概念。而连l这个事情,如果不定义极限的概念Q根本就解释不了。古希腊人的数学非常强,但就是缺乏极限观念,所以解释不了运动,被芝诺的那些著名悖论Q飞不动、飞毛腿阿喀琉斯跑不q乌龟等四个悖论Q搞得死L来。因文章不是讲微积分的Q所以我׃多说了。有兴趣的读者可以去看看齐民友教授写的《重温微U分》。我是Mq本书开头的部分Q才明白“高{数学是研究q动的数学”这句话的道理?/font><br /><font size="3">不过在我q个《理解矩c的文章里,“运动”的概念不是微积分中的连l性的q动Q而是瞬间发生的变化。比如这个时dA点,l过一个“运动”,一下子?b><u>跃迁</u></b>”到了B点,其中不需要经qA点与B点之间的M一个点。这L“运动”,或者说“跃q”,是违反我们日常的l验的。不q了解一炚w子物理常识的人,׃立刻指出Q量子(例如电子Q在不同的能量轨道上蟩跃,是瞬间发生的,hq样一U跃q行为。所以说Q自然界中ƈ不是没有q种q动现象Q只不过宏观上我们观察不到。但是不怎么_“运动”这个词用在q里Q还是容易生歧义的Q说得更切些,应该是“跃q”。因此这句话可以ҎQ?/font><br /><font size="3">“矩阉|U性空间里跃迁的描q”?/font><br /><font size="3">可是q样说又太物理,也就是说太具体,而不够数学,也就是说不够抽象。因此我们最后换用一个正牌的数学术语—?b><u>变换</u></b>Q来描述q个事情。这样一_大家应该明白了Q?font color="#ff0000"><b>所谓变换,其实是I间里从一个点Q元?对象Q到另一个点Q元?对象Q的跃迁</b></font>。比如说Q拓扑变换,是在拓扑空间里从一个点到另一个点的跃q。再比如_仿射变换Q就是在仿射I间里从一个点到另一个点的跃q。附带说一下,q个仿射I间跟向量空间是亲兄弟。做计算机图形学的朋友都知道Q尽描qC个三l对象只需要三l向量,但所有的计算机图形学变换矩阵都是4 x 4的。说其原因,很多书上都写着“ؓ了用中方便”,q在我看来简直就是企图蒙淯兟뀂真正的原因Q是因ؓ在计机囑Ş学里应用的图形变换,实际上是在仿空间而不是向量空间中q行的。想想看Q在向量I间里相一个向量^行移动以后仍是相同的那个向量Q而现实世界等长的两个qU段当然不能被认为同一个东西,所以计机囑Ş学的生存I间实际上是仿射I间。而仿变换的矩阵表示Ҏ是4 x 4的。又扯远了,有兴的读者可以去看《计机囑Ş学——几何工L法详解》?/font><br /><font size="3">一旦我们理解了“变换”这个概念,矩阵的定义就变成Q?/font><br /><font size="3"><font color="#ff0000"><b>“矩阉|U性空间里的变换的描述。?/b></font></font><br /><font size="3">到这里ؓ止,我们l于得到了一个看上去比较数学的定义。不q还要多说几句。教材上一般是q么说的Q在一个线性空间V里的一个线性变换TQ当选定一l基之后Q就可以表示为矩c因此我们还要说清楚到底什么是U性变换,什么是基,什么叫选定一l基。线性变换的定义是很单的Q设有一U变换TQ得对于线性空间V中间M两个不相同的对象x和yQ以及Q意实数a和bQ有Q?br />T(ax + by) = aT(x) + bT(y)Q?br />那么qT为线性变换?/font><br /><font size="3">定义都是q么写的Q但是光看定义还得不到直觉的理解。线性变换究竟是一U什么样的变换?我们刚才说了Q变换是从空间的一个点跃迁到另一个点Q而线性变换,是从一个线性空间V的某一个点跃迁到另一个线性空间W的另一个点的运动。这句话里蕴含着一层意思,是说一个点不仅可以变换到同一个线性空间中的另一个点Q而且可以变换到另一个线性空间中的另一个点厅R不你怎么变,只要变换前后都是U性空间中的对象,q个变换׃定是U性变换,也就一定可以用一个非奇异矩阵来描q。而你用一个非奇异矩阵Lq的一个变换,一定是一个线性变换。有的h可能要问Q这里ؓ什么要非奇异矩阵?所谓非奇异Q只Ҏ阉|意义Q那么非斚w的情冉|么Pq个说v来就会比较冗长了Q最后要把线性变换作ZU映,q且讨论其映性质Q以及线性变换的怸像等概念才能d讲清楚。我觉得q个不算是重点,如果实有时间的话,以后写一炏V?b>以下我们只探讨最常用、最有用的一U变换,是在同一个线性空间之内的U性变换。也是_下面所说的矩阵Q不作说明的话,是斚wQ而且是非奇异斚w。学习一门学问,最重要的是把握d内容Q迅速徏立对于这门学问的整体概念Q不必一开始就考虑所有的l枝末节和特D情况,自ؕ阵脚?/b></font><br /><font size="3">接着往下说Q什么是基呢Q这个问题在后面q要大讲一番,q里只要<b><font color="#ff0000">把基看成是线性空间里的坐标系可以了?/font></b>注意是坐标系Q不是坐标|q两者可是一个“对立矛盄一体”。这样一来,“选定一l基”就是说在线性空间里选定一个坐标系。就q意思?/font><br /><font size="3">好,最后我们把矩阵的定义完善如下:</font><br /><font size="3"><font color="#ff0000"><b>“矩阉|U性空间中的线性变换的一个描q。在一个线性空间中Q只要我们选定一l基Q那么对于Q何一个线性变换,都能够用一个确定的矩阵来加以描q。?/b></font></font><br /><font size="3"><b>理解q句话的关键Q在于把“线性变换”与“线性变换的一个描q”区别开?/b>一个是那个对象Q一个是寚w个对象的表述。就好像我们熟悉的面向对象编E中Q一个对象可以有多个引用Q每个引用可以叫不同的名字,但都是指的同一个对象。如果还不Ş象,那就q脆来个很俗的类比?/font><br /><font size="3">比如有一头猪Q你打算l它拍照片,只要你给照相机选定了一个镜头位|,那么可以给q头猪拍一张照片。这个照片可以看成是q头猪的一个描qͼ但只是一个片面的的描qͼ因ؓ换一个镜头位|给q头猪拍照,能得C张不同的照片Q也是这头猪的另一个片面的描述。所有这L出来的照片都是这同一头猪的描qͼ但是又都不是q头猪本w?/font><br /><font size="3"><font color="#ff0000"><b>同样的,对于一个线性变换,只要你选定一l基Q那么就可以扑ֈ一个矩阉|描述q个U性变换。换一l基Q就得到一个不同的矩阵。所有这些矩阵都是这同一个线性变换的描述Q但又都不是U性变换本w?/b></font></font><br /><font size="3">但是q样的话Q问题就来了如果你给我两张猪的照片,我怎么知道q两张照片上的是同一头猪呢?同样的,你给我两个矩阵,我怎么知道q两个矩阉|描述的同一个线性变换呢Q如果是同一个线性变换的不同的矩阉|qͼ那就是本家兄弟了Q见面不认识Q岂不成了笑话?/font><br /><font size="3">好在Q我们可以找到同一个线性变换的矩阵兄弟们的一个性质Q那是Q?/font><br /><font size="3">若矩阵A与B是同一个线性变换的两个不同的描qͼ之所以会不同Q是因ؓ选定了不同的基,也就是选定了不同的坐标p)Q则一定能扑ֈ一个非奇异矩阵PQ得A、B之间满q样的关p:</font><br /><font size="3">A = P-1BP</font><br /><font size="3">U性代数稍微熟一点的读者一下就看出来,q就是相似矩늚定义。没错,<b><font color="#ff0000">所谓相似矩阵,是同一个线性变换的不同的描q矩c?/font></b>按照q个定义Q同一头猪的不同角度的照片也可以成为相似照片。俗了一点,不过能让人明白?/font><br /><font size="3">而在上面式子里那个矩阵PQ其实就是A矩阵所Z的基与B矩阵所Z的基q两l基之间的一个变换关pR关于这个结论,可以用一U非常直觉的Ҏ来证明(而不是一般教U书上那UŞ式上的证明)Q如果有旉的话Q我以后在blog里补充这个证明?/font><br /><font size="3">q个发现太重要了?b><font color="#ff0000">原来一族相似矩阵都是同一个线性变换的描述啊!</font></b>难怪这么重要!工科研究生课E中有矩阵论、矩阵分析等评Q其中讲了各U各L怼变换Q比如什么相似标准型Q对角化之类的内容,都要求变换以后得到的那个矩阵与先前的那个矩阵式相似的Qؓ什么这么要求?因ؓ只有q样要求Q才能保证变换前后的两个矩阵是描q同一个线性变换的。当Ӟ同一个线性变换的不同矩阵描述Q从实际q算性质来看q不是不分好环的。有些描q矩阵就比其他的矩阵性质好得多。这很容易理解,同一头猪的照片也有美丑之分嘛。所以矩늚怼变换可以把一个比较丑的矩阵变成一个比较美的矩阵,而保证这两个矩阵都是描述了同一个线性变换?/font><br /><font size="3">q样一来,矩阵作ؓU性变换描q的一面,基本上说清楚了。但是,事情没有那么单,或者说Q线性代数还有比q更奇妙的性质Q那是Q?b><font color="#ff0000">矩阵不仅可以作ؓU性变换的描述Q而且可以作ؓ一l基的描q?/font><font color="#ff0000">而作为变换的矩阵Q不但可以把U性空间中的一个点l变换到另一个点去,而且也能够把U性空间中的一个坐标系Q基Q表换到另一个坐标系Q基Q去。而且Q变换点与变换坐标系Q具有异曲同工的效果。线性代数里最有趣的奥妙,p含在其中。理解了q些内容Q线性代数里很多定理和规则会变得更加清晰、直觉?/font></b></font><img src ="http://www.shnenglu.com/mybios/aggbug/15222.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/mybios/" target="_blank">李锦?/a> 2006-11-16 15:01 <a href="http://www.shnenglu.com/mybios/archive/2006/11/16/15222.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://www.shnenglu.com/" title="精品视频久久久久">精品视频久久久久</a> <div class="friend-links"> </div> </div> </footer> <a href="http://www.9978217.cn" target="_blank">޾Ʒþþþ</a>| <a href="http://www.sinaer.cn" target="_blank">Ʒþ޲</a>| <a href="http://www.newlifefitness.cn" target="_blank">þþþޱٸ</a>| <a href="http://www.zfbwgd.cn" target="_blank">þۺɫ</a>| <a href="http://www.shgdb.cn" target="_blank">Ʒþۺ</a>| <a href="http://www.zhihuzhuanlan.com.cn" target="_blank">˾þô߽Ʒ</a>| <a href="http://www.jhyjpj.cn" target="_blank">þþþþþþƷŮ99</a>| <a href="http://www.chiti.com.cn" target="_blank">þۺɫ</a>| <a href="http://www.ehrmfye.cn" target="_blank">ũ帾ŮëƬƷþ</a>| <a href="http://www.hoay.com.cn" target="_blank">þþȹ͵ۺ</a>| <a href="http://www.lushihu.cn" target="_blank">һƷþþ޹</a>| <a href="http://www.otraveler.cn" target="_blank">AV˾þԭ</a>| <a href="http://www.deshizhai.cn" target="_blank">þþһƷ99þþƷ66 </a>| <a href="http://www.hoqw.cn" target="_blank">ĻþþƷ1 </a>| <a href="http://www.kimhi.cn" target="_blank">Ʒþþ</a>| <a href="http://www.vf369.cn" target="_blank">ɫ8ŷ˾þۺϵ</a>| <a href="http://www.847888.com.cn" target="_blank">ŷһþ</a>| <a href="http://www.sinaer.cn" target="_blank">þþþ޾Ʒַ</a>| <a href="http://www.youhezulin.cn" target="_blank">þþƷav鶹С˵</a>| <a href="http://www.biaopie.cn" target="_blank">þþƷѴƬƬ </a>| <a href="http://www.sdhaomai.cn" target="_blank">Ʒ˾þ˵Ӱ</a>| <a href="http://www.baikuu.cn" target="_blank">þ99Ʒþþþþþþþ</a>| <a href="http://www.jingxi.jx.cn" target="_blank">ҹþAAAAAëƬѿ</a>| <a href="http://www.fc27.cn" target="_blank">޹˾þۺһ </a>| <a href="http://www.piaozen.cn" target="_blank">ձþĻ</a>| <a href="http://www.dl-dr.cn" target="_blank">Ʒ˾Ʒþþ</a>| <a href="http://www.3second.cn" target="_blank">þþþһvr</a>| <a href="http://www.apcu.cn" target="_blank">һþƵ</a>| <a href="http://www.jjshjlbf.cn" target="_blank">ٸþþþþñŪ߳ </a>| <a href="http://www.xibeiguangdian.cn" target="_blank">ҹƷþþþþþþ</a>| <a href="http://www.pp4f.cn" target="_blank">޾Ʒרþͬ</a>| <a href="http://www.esfjjr.cn" target="_blank">þþþþ޾Ʒ</a>| <a href="http://www.xbfiyz.cn" target="_blank">ƷŮþAV</a>| <a href="http://www.hasgw.cn" target="_blank">ƷþþþþþҹƬ</a>| <a href="http://www.sunriseydy.cn" target="_blank">þþƷоƷ</a>| <a href="http://www.abovefq.cn" target="_blank">ԴӰȷþԴ</a>| <a href="http://www.kovnxs.cn" target="_blank">þþƷ</a>| <a href="http://www.haolook.cn" target="_blank">97þóƷ2021</a>| <a href="http://www.juzijia.cn" target="_blank">þAvԴվ </a>| <a href="http://www.lightingtruss.cn" target="_blank">þþƷһ</a>| <a href="http://www.job158.cn" target="_blank">޹˾þۺ3d</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>