锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久久久99精品成人片欧美,中文字幕乱码久久午夜,热99RE久久精品这里都是精品免费 http://www.shnenglu.com/QUIRE-0216/zh-cnWed, 07 May 2025 03:16:07 GMTWed, 07 May 2025 03:16:07 GMT60鍏充簬Dijkstra綆楁硶鎴戠殑鐞嗚В錛堜笅錛?/title><link>http://www.shnenglu.com/QUIRE-0216/archive/2008/02/01/42356.html</link><dc:creator>QUIRE-0216</dc:creator><author>QUIRE-0216</author><pubDate>Fri, 01 Feb 2008 09:09:00 GMT</pubDate><guid>http://www.shnenglu.com/QUIRE-0216/archive/2008/02/01/42356.html</guid><wfw:comment>http://www.shnenglu.com/QUIRE-0216/comments/42356.html</wfw:comment><comments>http://www.shnenglu.com/QUIRE-0216/archive/2008/02/01/42356.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.shnenglu.com/QUIRE-0216/comments/commentRss/42356.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/QUIRE-0216/services/trackbacks/42356.html</trackback:ping><description><![CDATA[<img style="BORDER-LEFT-COLOR: #ffcc99; BORDER-BOTTOM-COLOR: #ffcc99; BORDER-TOP-COLOR: #ffcc99; BORDER-RIGHT-COLOR: #ffcc99" height=197 alt="" src="http://www.shnenglu.com/images/cppblog_com/quire-0216/2.jpg" width=591 border=2><br>榪欐榪樻湁鍙ヨ璇寸殑灝辨槸錛氾紙<u style="COLOR: red"><span style="COLOR: red">鍦ㄦ妸錛及錛ワ籍琛ㄤ腑鏈浼樺肩殑鑺傜偣鎻掑叆銆錛o棘錛汲錛ヨ〃涓椂濡傛灉鍦跡錛集錛籌譏琛ㄤ腑宸茬粡瀛樺湪閭e氨瑕佹瘮杈冿紝濡傛灉瀛樺湪鐨勮妭鐐圭殑鏉冨兼瘮瑕佹彃鍏ョ殑澶э紝灝辮鎶婂瓨鍦ㄧ殑鏇挎崲鎺夛紙鑺傜偣涓墍鏈夊唴瀹?/span><span style="COLOR: red">錛夛紝鍚﹀垯灝卞拷鐣?/span></u>錛夛紟<br><br>絎紦姝ワ細(xì)灝辨槸閲嶅絎紥姝ラ錛堢ず渚嬪浘濡備笅錛?br><img style="BORDER-LEFT-COLOR: #ffcc99; BORDER-BOTTOM-COLOR: #ffcc99; BORDER-TOP-COLOR: #ffcc99; BORDER-RIGHT-COLOR: #ffcc99" height=160 alt="" src="http://www.shnenglu.com/images/cppblog_com/quire-0216/3.jpg" width=585 border=2><br>鎴戞兂鍥犺鏄庣櫧浜嗗惂錛?br><br><img style="BORDER-LEFT-COLOR: #ffcc99; BORDER-BOTTOM-COLOR: #ffcc99; BORDER-TOP-COLOR: #ffcc99; BORDER-RIGHT-COLOR: #ffcc99" height=167 alt="" src="http://www.shnenglu.com/images/cppblog_com/quire-0216/4.jpg" width=582 border=2><br><br><img style="BORDER-LEFT-COLOR: #ffcc99; BORDER-BOTTOM-COLOR: #ffcc99; BORDER-TOP-COLOR: #ffcc99; BORDER-RIGHT-COLOR: #ffcc99" height=181 alt="" src="http://www.shnenglu.com/images/cppblog_com/quire-0216/5.jpg" width=580 border=2><br><br><img style="BORDER-LEFT-COLOR: #ffcc99; BORDER-BOTTOM-COLOR: #ffcc99; BORDER-TOP-COLOR: #ffcc99; BORDER-RIGHT-COLOR: #ffcc99" height=191 alt="" src="http://www.shnenglu.com/images/cppblog_com/quire-0216/6.jpg" width=580 border=2><br><br><img style="BORDER-LEFT-COLOR: #ffcc99; BORDER-BOTTOM-COLOR: #ffcc99; BORDER-TOP-COLOR: #ffcc99; BORDER-RIGHT-COLOR: #ffcc99" height=210 alt="" src="http://www.shnenglu.com/images/cppblog_com/quire-0216/7.jpg" width=580 border=2><br><br><img style="BORDER-LEFT-COLOR: #ffcc99; BORDER-BOTTOM-COLOR: #ffcc99; BORDER-TOP-COLOR: #ffcc99; BORDER-RIGHT-COLOR: #ffcc99" height=240 alt="" src="http://www.shnenglu.com/images/cppblog_com/quire-0216/8.jpg" width=575 border=2><br>濂戒簡鏈鍚庝竴寮犲畬宸ワ紒<br><img style="BORDER-LEFT-COLOR: #ffcc99; BORDER-BOTTOM-COLOR: #ffcc99; BORDER-TOP-COLOR: #ffcc99; BORDER-RIGHT-COLOR: #ffcc99" height=231 alt="" src="http://www.shnenglu.com/images/cppblog_com/quire-0216/9.jpg" width=578 border=2><br>緇堢偣錛?2鑺傜偣錛夋壘鍒頒簡鏄惂錛佹垜鎯沖洜璇ユ槑鐧戒簡鍚э紒<br> <img src ="http://www.shnenglu.com/QUIRE-0216/aggbug/42356.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/QUIRE-0216/" target="_blank">QUIRE-0216</a> 2008-02-01 17:09 <a href="http://www.shnenglu.com/QUIRE-0216/archive/2008/02/01/42356.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍏充簬Dijkstra綆楁硶鎴戠殑鐞嗚В錛堜笂錛?/title><link>http://www.shnenglu.com/QUIRE-0216/archive/2008/02/01/42351.html</link><dc:creator>QUIRE-0216</dc:creator><author>QUIRE-0216</author><pubDate>Fri, 01 Feb 2008 08:13:00 GMT</pubDate><guid>http://www.shnenglu.com/QUIRE-0216/archive/2008/02/01/42351.html</guid><wfw:comment>http://www.shnenglu.com/QUIRE-0216/comments/42351.html</wfw:comment><comments>http://www.shnenglu.com/QUIRE-0216/archive/2008/02/01/42351.html#Feedback</comments><slash:comments>12</slash:comments><wfw:commentRss>http://www.shnenglu.com/QUIRE-0216/comments/commentRss/42351.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/QUIRE-0216/services/trackbacks/42351.html</trackback:ping><description><![CDATA[<p>鏈榪戝仛浜嗚礬寰勬悳绱?鐪嬩簡緗戜笂鐨勬弿榪扮湡鏄櫐娑?鎵浠ヨ嚜宸卞氨鏁寸悊涓?<br>鍥劇敾鐨勪笉澶ソ, :)<br>緇胯壊鐨勬槸鑺傜偣,綰㈣壊鐨勪負(fù)鏉冨?綆ご涓哄彲閫氳鐨勬爣蹇?<br><img style="BORDER-LEFT-COLOR: #ffcc99; BORDER-BOTTOM-COLOR: #ffcc99; BORDER-TOP-COLOR: #ffcc99; BORDER-RIGHT-COLOR: #ffcc99" height=449 alt="" src="http://www.shnenglu.com/images/cppblog_com/quire-0216/shilitu.jpg" width=576 border=2><br>鐜板湪鎴戜滑瑕佷粠 0 鑺傜偣 鍒?12 鑺傜偣 鎵句竴鏉℃渶浼樿礬寰?<br>棣栧厛鍜變滑瑕佽В鍐砃ODE鐐瑰瓨璐殑淇℃伅(緇撴瀯):<br>struct NodeBaseInfo<br>{<br>   unsigned short nNodeID;銆銆銆//鐣彿<br>   unsigned long  nMeasure;            //鏉冨?br>   NodeBaseInfo *pParent;            //鐖惰妭鐐?br>};<br><br>鎴戝啓浜嗙畝鍗曠殑緇撴瀯澶у鍙互鏍規(guī)嵁鑷繁闇瑕佸畾涔夛紙瀹氫箟榪欎釜緇撴瀯鏄負(fù)浜嗘洿濂界悊瑙o級<br>涓嬮潰璁茬殑鏄渶涓昏鐨勪簡錛?br>DIJKSTAR綆楁硶涓瀹氫箟涓や釜琛細(xì)OPEN 鍜?CLOSE  錛堝叾瀹炲彲浠ョ湅浣滈摼琛級<br>浠栫殑鍘熺悊灝辨槸鎶婃病鏈夐亶鍘嗙殑鐐規(guī)斁鍦?OPEN 琛ㄤ腑錛屾妸浠?OPEN琛ㄤ腑閬嶅巻鍒扮殑鏈鐭潈鍊肩殑鐐規(guī)斁鍏?br>CLOSE 琛ㄤ腑錛屽綋鎻掑叆 CLOSE琛ㄤ腑鐨勮妭鐐圭殑鐣彿浜庢垜浠鐨勯噸鐐規(guī)椂綆楁硶緇撴潫錛涚劧鍚庢寜鐓х埗鑺傜偣錛坧Parent錛?br>鍚戜笂閫掑綊灝卞彲浠ュ緱鍒版垜浠鐨勬渶浼樿礬寰勪簡銆?br><br>絎竴姝ワ細(xì)搴斾負(fù) OPEN 鍜孋LOSE琛ㄩ兘鏄┖鐨勶紝鎶婅搗鐐癸紙0鑺傜偣錛夋彃鍏LOSE鏍囦腑錛屽畠鐨勬潈鍊間負(fù)0銆傛妸璧風(fēng)偣錛?鑺傜偣錛夐檮榪戠殑鑺傜偣錛堝洜璇ヤ負(fù)鍙氳鐨勶級鎻掑叆OPEN 琛ㄤ腑錛?u style="COLOR: red">鏈濂芥寜鏉冨間粠澶ч亾灝忕殑欏哄簭鎻掑叆錛岃繖鏍峰彇寰楁渶浼樺兼椂錛岃繖鏍烽熷害灝變細(xì)寰堝揩</u>錛夈傦紙濡傜ず渚嬪浘錛?br><img style="BORDER-LEFT-COLOR: #ffcc99; BORDER-BOTTOM-COLOR: #ffcc99; BORDER-TOP-COLOR: #ffcc99; BORDER-RIGHT-COLOR: #ffcc99" height=438 alt="" src="http://www.shnenglu.com/images/cppblog_com/quire-0216/1.jpg" width=505 border=2><br>絎?姝ワ細(xì)浠嶰PEN琛ㄤ腑鎵懼埌鏉冨兼渶灝忕殑鑺傜偣錛屾妸瀹冩彃鍏LOSE 琛ㄤ腑, 鎶婅繖涓妭鐐圭殑鍙繛閫氱殑鑺傜偣鏌ュ叆錛及錛ワ籍<br>琛紝錛?span style="COLOR: red"><u>濡傛灉錛及錛ワ籍琛ㄤ腑瀛樺湪瑕佹煡鍏ョ殑鐐癸紝濡傛灉瑕佹彃鍏ョ殑鑺傜偣鐨勬潈鍊兼瘮宸茬粡瀛樺湪鐨勫皬錛屽氨鎶婂凡緇忔煡鍏ョ殑鏉冨艱涓烘渶灝忕殑錛屽鏋滆鎻掑叆鐨勮妭鐐圭殑鏉冨兼瘮宸茬粡瀛樺湪鐨勫ぇ錛屽氨蹇借惤瀹?/u></span>錛庯級<br>錛堜負(fù)浜嗘洿濂界殑鐞嗚В鎴戞妸鐖惰妭鐐逛篃鍔犲叆浜嗭紝濡傜ず渚嬪浘錛?br><br></p> <img src ="http://www.shnenglu.com/QUIRE-0216/aggbug/42351.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/QUIRE-0216/" target="_blank">QUIRE-0216</a> 2008-02-01 16:13 <a href="http://www.shnenglu.com/QUIRE-0216/archive/2008/02/01/42351.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍒╃敤縐諱綅銆佸姞鍑忔硶瀹炵幇鏁存暟寮騫蟲柟綆楁硶鐨勬柟娉?杞?http://www.shnenglu.com/QUIRE-0216/archive/2008/01/23/41714.htmlQUIRE-0216QUIRE-0216Wed, 23 Jan 2008 06:21:00 GMThttp://www.shnenglu.com/QUIRE-0216/archive/2008/01/23/41714.htmlhttp://www.shnenglu.com/QUIRE-0216/comments/41714.htmlhttp://www.shnenglu.com/QUIRE-0216/archive/2008/01/23/41714.html#Feedback1http://www.shnenglu.com/QUIRE-0216/comments/commentRss/41714.htmlhttp://www.shnenglu.com/QUIRE-0216/services/trackbacks/41714.html鏈畻娉曞彧閲囩敤縐諱綅銆佸姞鍑忔硶銆佸垽鏂拰寰幆瀹炵幇錛屽洜涓哄畠涓嶉渶瑕佹誕鐐硅繍綆楋紝涔熶笉闇瑕佷箻闄よ繍綆楋紝鍥犳鍙互寰堟柟渚垮湴榪愮敤鍒板悇縐嶈姱鐗囦笂鍘匯?/p>

鎴戜滑鍏堟潵鐪嬬湅10榪涘埗涓嬫槸濡備綍鎵嬪伐璁$畻寮鏂圭殑銆?br>鍏堢湅涓嬮潰涓や釜綆楀紡錛?br>x = 10*p + q  (1)
鍏紡(1)宸﹀彸騫蟲柟涔嬪悗寰楋細(xì)
x^2 = 100*p^2 + 20pq + q^2 (2)
鐜板湪鍋囪鎴戜滑鐭ラ亾x^2鍜宲錛屽笇鏈涙眰鍑簈鏉ワ紝姹傚嚭浜唓涔熷氨姹傚嚭浜唜^2鐨勫紑鏂箈浜嗐?br>鎴戜滑鎶婂叕寮?2)鏀瑰啓涓哄涓嬫牸寮忥細(xì)
q = (x^2 - 100*p^2)/(20*p+q) (3)

榪欎釜綆楀紡宸﹀彸閮芥湁q錛屽洜姝ゆ棤娉曠洿鎺ヨ綆楀嚭q鏉ワ紝鍥犳鎵嬪伐鐨勫紑鏂圭畻娉曞拰鎵嬪伐闄ゆ硶綆楁硶涓鏍鋒湁涓姝ラ渶瑕佺寽鍊箋?/p>

鎴戜滑鏉ヤ竴涓墜宸ヨ綆楃殑渚嬪瓙錛氳綆?234567890鐨勫紑鏂?/p>

棣栧厛鎴戜滑鎶婅繖涓暟涓や綅涓や綅涓緇勫垎寮錛岃綆楀嚭鏈楂樹綅涓?銆備篃灝辨槸(3)涓殑p錛屾渶涓嬮潰涓琛岀殑334涓轟綑鏁幫紝涔熷氨鏄叕寮?3)涓殑(x^2 - 100*p^2)榪戜技鍊?br>    3
  ---------------
 / 12 34 56 78 90
    9
  ---------------
 /  3 34

涓嬮潰鎴戜滑瑕佹壘鍒頒竴涓?-9鐨勬暟q浣垮畠鏈鎺ヨ繎婊¤凍鍏紡(3)銆傛垜浠厛鎶妏涔樹互20鍐欏湪334宸﹁竟錛?br>                           3  q
                         ---------------
                        / 12 34 56 78 90
                           9
                         ---------------
(20*3+q)*q      /  3 34

鎴戜滑鐪嬪埌q涓?鏃?60+q)*q鐨勫兼渶鎺ヨ繎334錛岃屼笖涓嶈秴榪?34銆備簬鏄垜浠緱鍒幫細(xì)
      3  5
    ---------------
   / 12 34 56 78 90
      9
    ---------------
65 /  3 34
      3 25
    ---------------
         9 56

鎺ヤ笅鏉ュ氨鏄噸澶嶄笂闈㈢殑姝ラ浜嗭紝榪欓噷灝變笉鍐嶅暟鍡︿簡銆?

榪欎釜鎵嬪伐綆楁硶鍏跺疄鍜?0榪涘埗鍏崇郴涓嶅ぇ錛屽洜姝ゆ垜浠彲浠ュ緢瀹規(guī)槗鐨勬妸瀹冩敼涓轟簩榪涘埗錛屾敼涓轟簩榪涘埗涔嬪悗錛屽叕寮?3)灝卞彉鎴愪簡錛?br>q = (x^2 - 4*p^2)/(4*p+q) (4)

鎴戜滑鏉ョ湅涓涓緥瀛愶紝璁$畻100(浜岃繘鍒?100100)鐨勫紑鏂癸細(xì)
       1  0  1  0
      -----------
     / 1 10 01 00
       1
      -----------
 100 / 0 10
       0 00
      -----------
1001 /   10 01
         10 01
      -----------
          0 00

榪欓噷姣忎竴姝ヤ笉鍐嶆槸鎶妏涔樹互20浜嗭紝鑰屾槸鎶妏涔樹互4錛屼篃灝辨槸鎶妏鍙崇Щ涓や綅錛岃岀敱浜巕鐨勫煎彧鑳戒負(fù)0鎴栬?錛屾墍浠ユ垜浠彧闇瑕佸垽鏂綑鏁?x^2 - 4*p^2)鍜?4*p+1)鐨勫ぇ灝忓叧緋伙紝濡傛灉浣欐暟澶т簬絳変簬(4*p+q)閭d箞璇ヤ笂涓涓?錛屽惁鍒欒涓婁竴涓?銆?/p>

涓嬮潰緇欏嚭瀹屾垚鐨凜璇█紼嬪簭錛屽叾涓璻oot琛ㄧずp錛宺em琛ㄧず姣忔璁$畻涔嬪悗鐨勪綑鏁幫紝divisor琛ㄧず(4*p+1)錛岄氳繃a>>30鍙朼鐨勬渶楂?2浣嶏紝閫氳繃a<<=2灝嗚綆楀悗鐨勬渶楂?浣嶅墧闄ゃ傚叾涓璻oot鐨勪袱嬈?lt;<1鐩稿綋浜?*p銆傜▼搴忓畬鍏ㄦ槸鎸夌収鎵嬪伐璁$畻鏀瑰啓鐨勶紝搴旇涓嶉毦鐞嗚В銆?br>unsigned short sqrt(unsigned long a){
  unsigned long rem = 0;
  unsigned long root = 0;
  unsigned long divisor = 0;
  for(int i=0; i<16; ++i){
    root <<= 1;
    rem = ((rem << 2) + (a >> 30));
    a <<= 2;
    divisor = (root<<1) + 1;
    if(divisor <= rem){
      rem -= divisor;
      root++;
    }
  }
  return (unsigned short)(root);
}



]]>
閫忔槑浣嶅浘鐨勬樉紺烘垜鐨勪唬鐮佸疄鐜?/title><link>http://www.shnenglu.com/QUIRE-0216/archive/2007/08/30/31218.html</link><dc:creator>QUIRE-0216</dc:creator><author>QUIRE-0216</author><pubDate>Thu, 30 Aug 2007 09:05:00 GMT</pubDate><guid>http://www.shnenglu.com/QUIRE-0216/archive/2007/08/30/31218.html</guid><wfw:comment>http://www.shnenglu.com/QUIRE-0216/comments/31218.html</wfw:comment><comments>http://www.shnenglu.com/QUIRE-0216/archive/2007/08/30/31218.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.shnenglu.com/QUIRE-0216/comments/commentRss/31218.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/QUIRE-0216/services/trackbacks/31218.html</trackback:ping><description><![CDATA[<p><strong>void TransparentBlt(CDC *pDestDC, int nXDest, int nYDest, int nWidth, int nHeight, CBitmap * pBitmap, int nXsrc, int nYsrc, COLORREF clr)<br>{<br> CDC maskDC, ImageDC;<br> maskDC.CreateCompatibleDC(pDestDC);<br> ImageDC.CreateCompatibleDC(pDestDC);</strong></p> <p><strong> CBitmap maskBMP;<br> maskBMP.CreateBitmap(nWidth, nHeight, 1, 1, NULL);//鍒涘緩鍗曡壊鎺╃爜浣嶅浘<br> CBitmap *pOldBMP = ImageDC.SelectObject(pBitmap);<br> CBitmap *maskOldBMP = maskDC.SelectObject(&maskBMP);<br> <br> ImageDC.SetBkColor(clr);// 璁劇疆閫忔槑鑹?br> maskDC.BitBlt(0, 0, nWidth, nHeight, &ImageDC, nXsrc, nYsrc, SRCCOPY);</strong></p> <p><strong> //璁劇疆鑳屾櫙鑹蹭負(fù)榛戣壊錛屽墠鏅壊涓虹櫧鑹詫紝灝嗘帺鐮佷綅鍥句笌鍘熶綅鍥劇浉"涓?<br> ImageDC.SetBkColor(RGB(0, 0, 0));<br> ImageDC.SetTextColor(RGB(255, 255, 255));<br> ImageDC.BitBlt(0, 0, nWidth, nHeight, &maskDC, nXsrc, nYsrc, SRCAND);</strong></p> <p><strong> //璁劇疆鑳屾櫙鑹蹭負(fù)鐧借壊錛屽墠鏅壊涓洪粦鑹詫紝灝嗘帺鐮佷綅鍥句笌鑳屾櫙榪涜“涓?#8221;榪愮畻<br> pDestDC->SetBkColor(RGB(255, 255, 255));<br> pDestDC->SetTextColor(RGB(0, 0, 0));<br> pDestDC->BitBlt(nXDest, nYDest, nWidth, nHeight, &maskDC, nXsrc, nYsrc, SRCAND);<br> // "鎴?榪愮畻,鐢熸垚鏈緇堟晥鏋?br> pDestDC->BitBlt(nXDest, nYDest, nWidth, nHeight, &ImageDC, nXsrc, nYsrc, SRCPAINT);</strong></p> <p><strong> if (pOldBMP) ImageDC.SelectObject(pOldBMP);<br> ImageDC.DeleteDC();<br> if (maskOldBMP) maskDC.SelectObject(maskOldBMP);<br> maskDC.DeleteDC();<br> if (maskBMP.m_hObject) maskBMP.DeleteObject();<br>}</strong></p> 鎴戝氨涓嶆庝箞瑙i噴浜?濡備笉鐞嗚В,璇風(fēng)湅鎴戣漿鐨?<strong>閫忔槑浣嶅浘鐨勬樉紺轟腑鐨?浜屻佸疄鐜癟ransparentBlt鍑芥暟)鐨勫師鐞?/strong>),鍏朵粬閮ㄥ垎閮藉氨浠涔堝繀瑕佷簡!鍛靛懙! <img src ="http://www.shnenglu.com/QUIRE-0216/aggbug/31218.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/QUIRE-0216/" target="_blank">QUIRE-0216</a> 2007-08-30 17:05 <a href="http://www.shnenglu.com/QUIRE-0216/archive/2007/08/30/31218.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>閫忔槑浣嶅浘鐨勬樉紺?杞?http://www.shnenglu.com/QUIRE-0216/archive/2007/08/30/31212.htmlQUIRE-0216QUIRE-0216Thu, 30 Aug 2007 08:52:00 GMThttp://www.shnenglu.com/QUIRE-0216/archive/2007/08/30/31212.htmlhttp://www.shnenglu.com/QUIRE-0216/comments/31212.htmlhttp://www.shnenglu.com/QUIRE-0216/archive/2007/08/30/31212.html#Feedback1http://www.shnenglu.com/QUIRE-0216/comments/commentRss/31212.htmlhttp://www.shnenglu.com/QUIRE-0216/services/trackbacks/31212.html鍖呭惈閫忔槑鑹茬殑浣嶅浘鐨勭粯鍒舵柟娉曟湁澶氱錛屾渶綆鍗曠殑鏂規(guī)硶鏄皟鐢ㄧ幇鎴愮殑鍑芥暟錛歍ransparentBlt,涔熷彲浠ラ氳繃鑷繁鐨勪唬鐮佸疄鐜扮被浼?TransparentBlt鐨勫姛鑳斤紝瀹炵幇榪囩▼涔熸湁涓ょ褰㈠紡錛屼竴縐嶆槸浜嬪厛鍋氫竴寮犳帺鐮佷綅鍥撅紝鍙︿竴縐嶆槸鍔ㄦ佺敓鎴愭帺鐮佷綅鍥俱傛湰鏂囧皢浠嬬粛鍔ㄦ佺敓鎴愭帺鐮佷綅鍥劇粯鍒跺叿鏈夐忔槑鍖哄煙浣嶅浘鐨勬柟娉曘?br>
涓銆乀ransparentBlt 鍑芥暟鐨勪嬌鐢?

TransparentBlt 鍑芥暟鍦╓indows98/Windows2000浠ヤ笂鐗堟湰榪愯錛岀郴緇熶腑闇瑕佸寘鍚?Msimg32.dll錛屼嬌鐢ㄦ椂鍙互閾炬帴 Msimg32.lib銆?br>Windows98涓嬬殑TransparentBlt浼?xì)漶旂敓璧勬簮娉勬紡锛屾墍浠ヤ笉寤鴻鍦╓IN98涓嬩嬌鐢ㄨ鍑芥暟銆?br>TransparentBlt鍑芥暟鍘熷瀷濡備笅:

BOOL TransparentBlt(
HDC hdcDest,      // 鐩爣DC
int nXOriginDest,   // 鐩爣X鍋忕Щ
int nYOriginDest,   // 鐩爣Y鍋忕Щ
int nWidthDest,     // 鐩爣瀹藉害
int hHeightDest,    // 鐩爣楂樺害
HDC hdcSrc,         // 婧怐C
int nXOriginSrc,    // 婧怷璧風(fēng)偣
int nYOriginSrc,    // 婧怸璧風(fēng)偣
int nWidthSrc,      // 婧愬搴?
int nHeightSrc,     // 婧愰珮搴?
UINT crTransparent  // 閫忔槑鑹?COLORREF綾誨瀷
);
浣跨敤紺轟緥:
CBitmap FootballBMP;
FootballBMP.LoadBitmap(IDB_FOOTBALLBMP);
CDC ImageDC;
ImageDC.CreateCompatibleDC(pDC);
CBitmap *pOldImageBMP = ImageDC.SelectObject(&FootballBMP);
TransparentBlt(pDC->m_hDC, 0, 0, 218, 199, ImageDC.m_hDC, 0, 0, 218, 199, RGB(0,0,0xff));
ImageDC.SelectObject(pOldImageBMP);
浜屻佸疄鐜癟ransparentBlt鍑芥暟

涓轟簡鐞嗚В鍏鋒湁閫忔槑鑹蹭綅鍥劇殑緇樺埗榪囩▼錛屾垜浠潵浜叉墜寤虹珛涓涓叿鏈夊悓TransparentBlt鍔熻兘涓鑷寸殑瀹為獙鍑芥暟錛岀О涔嬩負(fù)TransparentBlt2銆?br>
瀹為獙绱犳潗錛氭湁涓ゅ紶浣嶅浘錛歜k.bmp鏄儗鏅綅鍥撅紝football.bmp鍖呭惈閫忔槑鍖哄煙錛岄忔槑鑹蹭負(fù)钃濊壊RGB(0,0,0xff)
瀹為獙鐩殑錛氫互bk.bmp涓鴻儗鏅紝灝唂ootball.bmp緇樺埗鍒拌儗鏅腑錛屽艦鎴愬涓嬬殑鏈緇堟晥鏋滃浘銆?br>

 



2.1 閫忔槑浣嶅浘緇樺埗鍘熺悊
鍋囪football.bmp ->杞藉叆 HBITMAP hImageBMP -> 閫夊叆 HDC hImageDC

2.1.1 鐢熸垚瓚崇悆鐨勫崟鑹叉帺鐮佷綅鍥撅紝閫忔槑鍖哄煙涓虹櫧鑹詫紙鍏?錛夛紝闈為忔槑鍖哄煙涓洪粦鑹詫紙鍏?)
HBITMAP hMaskBMP = CreateBitmap(nWidthDest, nHeightDest, 1, 1, NULL); // 寤虹珛鍗曡壊浣嶅浘
SetBkColor(hImageDC, RGB(0,0,0xff)); // 璁劇疆鑳屾櫙鑹蹭負(fù)钃濊壊
BitBlt(hMaskDC, 0, 0, nWidthDest, nHeightDest, hImageDC, 0, 0, SRCCOPY); // 鎷瘋礉鍒癶MaskDC
榪欐牱瓚崇悆浣嶅浘涓摑鑹插尯鍩熷湪鎺╃爜浣嶅浘涓垚浜嗙櫧鑹詫紝鍏跺畠鍖哄煙涓洪粦鑹詫紝姝ゆ椂hMaskBMP 濡備笅鍥?
(鍥句竴)

2.1.2 璁劇疆鑳屾櫙鑹蹭負(fù)榛戣壊錛屽墠鏅壊涓虹櫧鑹詫紝灝嗘帺鐮佷綅鍥?鍥句竴)涓庤凍鐞冧綅鍥劇浉"涓?
SetBkColor(hImageDC, RGB(0,0,0));
SetTextColor(hImageDC, RGB(255,255,255));
BitBlt(hImageDC, 0, 0, nWidthDest, nHeightDest, hMaskDC, 0, 0, SRCAND);
榪欐牱錛屾帺鐮佷綅鍥句腑鑳屾櫙鑹詫紙榛戣壊錛夌殑鍖哄煙鍦╤ImageBMP涓淇濈暀錛屽墠鏅壊錛堢櫧鑹詫級鐨勯儴鍒嗗彉涓洪粦鑹層?姝ゆ椂hImageBMP 濡備笅鍥?
(鍥句簩)

2.1.3 璁劇疆鑳屾櫙鑹蹭負(fù)鐧借壊錛屽墠鏅壊涓洪粦鑹詫紝灝嗘帺鐮佷綅鍥?鍥句竴)涓庤儗鏅繘琛?#8220;涓?#8221;榪愮畻
SetBkColor(hdcDest,RGB(255,255,255));
SetTextColor(hdcDest,RGB(0,0,0));
BitBlt(hdcDest, nXOriginDest, nYOriginDest, nWidthDest, nHeightDest, hMaskDC, 0, 0, SRCAND);
鎺╃爜涓櫧鑹插尯鍩燂紙鏁版嵁涓?鐩?#8220;涓?#8221;緇撴灉涓嶅彉錛変嬌鑳屾櫙淇濇寔涓嶅彉錛岄粦鑹插尯鍩熷彉鎴愰粦鑹詫紝姝ゆ椂鑳屾櫙鏄劇ず濡備笅:
(鍥句笁)

2.1.4 灝唄ImageBMP(鍥句簩)涓庤儗鏅?鍥句笁)榪涜“鎴?#8221;榪愮畻
BitBlt(hdcDest, nXOriginDest, nYOriginDest, nWidthDest, nHeightDest, hImageDC, 0, 0, SRCPAINT);
榪欐牱灝卞皢瓚崇悆緇樺埗鍒拌儗鏅笂浜嗐?br>
2.2 TransparentBlt2鍑芥暟鍏ㄩ儴瀹炵幇浠g爜
void TransparentBlt2( HDC hdcDest,      // 鐩爣DC
int nXOriginDest,   // 鐩爣X鍋忕Щ
int nYOriginDest,   // 鐩爣Y鍋忕Щ
int nWidthDest,     // 鐩爣瀹藉害
int nHeightDest,    // 鐩爣楂樺害
HDC hdcSrc,         // 婧怐C
int nXOriginSrc,    // 婧怷璧風(fēng)偣
int nYOriginSrc,    // 婧怸璧風(fēng)偣
int nWidthSrc,      // 婧愬搴?
int nHeightSrc,     // 婧愰珮搴?
UINT crTransparent  // 閫忔槑鑹?COLORREF綾誨瀷
)
{
HBITMAP hOldImageBMP, hImageBMP = CreateCompatibleBitmap(hdcDest, nWidthDest, nHeightDest);	// 鍒涘緩鍏煎浣嶅浘
HBITMAP hOldMaskBMP, hMaskBMP = CreateBitmap(nWidthDest, nHeightDest, 1, 1, NULL);			// 鍒涘緩鍗曡壊鎺╃爜浣嶅浘
HDC		hImageDC = CreateCompatibleDC(hdcDest);
HDC		hMaskDC = CreateCompatibleDC(hdcDest);
hOldImageBMP = (HBITMAP)SelectObject(hImageDC, hImageBMP);
hOldMaskBMP = (HBITMAP)SelectObject(hMaskDC, hMaskBMP);
// 灝嗘簮DC涓殑浣嶅浘鎷瘋礉鍒頒復(fù)鏃禗C涓?
if (nWidthDest == nWidthSrc && nHeightDest == nHeightSrc)
BitBlt(hImageDC, 0, 0, nWidthDest, nHeightDest, hdcSrc, nXOriginSrc, nYOriginSrc, SRCCOPY);
else
StretchBlt(hImageDC, 0, 0, nWidthDest, nHeightDest,
hdcSrc, nXOriginSrc, nYOriginSrc, nWidthSrc, nHeightSrc, SRCCOPY);
// 璁劇疆閫忔槑鑹?
SetBkColor(hImageDC, crTransparent);
// 鐢熸垚閫忔槑鍖哄煙涓虹櫧鑹詫紝鍏跺畠鍖哄煙涓洪粦鑹茬殑鎺╃爜浣嶅浘
BitBlt(hMaskDC, 0, 0, nWidthDest, nHeightDest, hImageDC, 0, 0, SRCCOPY);
// 鐢熸垚閫忔槑鍖哄煙涓洪粦鑹詫紝鍏跺畠鍖哄煙淇濇寔涓嶅彉鐨勪綅鍥?
SetBkColor(hImageDC, RGB(0,0,0));
SetTextColor(hImageDC, RGB(255,255,255));
BitBlt(hImageDC, 0, 0, nWidthDest, nHeightDest, hMaskDC, 0, 0, SRCAND);
// 閫忔槑閮ㄥ垎淇濇寔灞忓箷涓嶅彉錛屽叾瀹冮儴鍒嗗彉鎴愰粦鑹?
SetBkColor(hdcDest,RGB(255,255,255));
SetTextColor(hdcDest,RGB(0,0,0));
BitBlt(hdcDest, nXOriginDest, nYOriginDest, nWidthDest, nHeightDest, hMaskDC, 0, 0, SRCAND);
// "鎴?榪愮畻,鐢熸垚鏈緇堟晥鏋?
BitBlt(hdcDest, nXOriginDest, nYOriginDest, nWidthDest, nHeightDest, hImageDC, 0, 0, SRCPAINT);
// 娓呯悊銆佹仮澶?
SelectObject(hImageDC, hOldImageBMP);
DeleteDC(hImageDC);
SelectObject(hMaskDC, hOldMaskBMP);
DeleteDC(hMaskDC);
DeleteObject(hImageBMP);
DeleteObject(hMaskBMP);
}
2.3 TransparentBlt鐨勫彟澶栦竴涓増鏈?TransparentBltU

TransparentBltU鏄疌hristian Graus 鍦╓inDEV鍙戣〃鐨勪竴涓嚱鏁幫紝鍔熻兘涓嶵ransparentBlt涓鑷達(dá)紝浠ヤ笅鏄叏閮ㄥ疄鐜頒唬鐮?
bool TransparentBltU(
HDC dcDest,         // handle to Dest DC
int nXOriginDest,   // x-coord of destination upper-left corner
int nYOriginDest,   // y-coord of destination upper-left corner
int nWidthDest,     // width of destination rectangle
int nHeightDest,    // height of destination rectangle
HDC dcSrc,          // handle to source DC
int nXOriginSrc,    // x-coord of source upper-left corner
int nYOriginSrc,    // y-coord of source upper-left corner
int nWidthSrc,      // width of source rectangle
int nHeightSrc,     // height of source rectangle
UINT crTransparent  // color to make transparent
)
{
if (nWidthDest < 1) return false;
if (nWidthSrc < 1) return false;
if (nHeightDest < 1) return false;
if (nHeightSrc < 1) return false;
HDC dc = CreateCompatibleDC(NULL);
HBITMAP bitmap = CreateBitmap(nWidthSrc, nHeightSrc, 1, GetDeviceCaps(dc,
BITSPIXEL), NULL);
if (bitmap == NULL)
{
DeleteDC(dc);
return false;
}
HBITMAP oldBitmap = (HBITMAP)SelectObject(dc, bitmap);
if (!BitBlt(dc, 0, 0, nWidthSrc, nHeightSrc, dcSrc, nXOriginSrc,
nYOriginSrc, SRCCOPY))
{
SelectObject(dc, oldBitmap);
DeleteObject(bitmap);
DeleteDC(dc);
return false;
}
HDC maskDC = CreateCompatibleDC(NULL);
HBITMAP maskBitmap = CreateBitmap(nWidthSrc, nHeightSrc, 1, 1, NULL);
if (maskBitmap == NULL)
{
SelectObject(dc, oldBitmap);
DeleteObject(bitmap);
DeleteDC(dc);
DeleteDC(maskDC);
return false;
}
HBITMAP oldMask =  (HBITMAP)SelectObject(maskDC, maskBitmap);
SetBkColor(maskDC, RGB(0,0,0));
SetTextColor(maskDC, RGB(255,255,255));
if (!BitBlt(maskDC, 0,0,nWidthSrc,nHeightSrc,NULL,0,0,BLACKNESS))
{
SelectObject(maskDC, oldMask);
DeleteObject(maskBitmap);
DeleteDC(maskDC);
SelectObject(dc, oldBitmap);
DeleteObject(bitmap);
DeleteDC(dc);
return false;
}
SetBkColor(dc, crTransparent);
BitBlt(maskDC, 0,0,nWidthSrc,nHeightSrc,dc,0,0,SRCINVERT);
SetBkColor(dc, RGB(0,0,0));
SetTextColor(dc, RGB(255,255,255));
BitBlt(dc, 0,0,nWidthSrc,nHeightSrc,maskDC,0,0,SRCAND);
HDC newMaskDC = CreateCompatibleDC(NULL);
HBITMAP newMask;
newMask = CreateBitmap(nWidthDest, nHeightDest, 1,
GetDeviceCaps(newMaskDC, BITSPIXEL), NULL);
if (newMask == NULL)
{
SelectObject(dc, oldBitmap);
DeleteDC(dc);
SelectObject(maskDC, oldMask);
DeleteDC(maskDC);
DeleteDC(newMaskDC);
DeleteObject(bitmap);
DeleteObject(maskBitmap);
return false;
}
SetStretchBltMode(newMaskDC, COLORONCOLOR);
HBITMAP oldNewMask = (HBITMAP) SelectObject(newMaskDC, newMask);
StretchBlt(newMaskDC, 0, 0, nWidthDest, nHeightDest, maskDC, 0, 0,
nWidthSrc, nHeightSrc, SRCCOPY);
SelectObject(maskDC, oldMask);
DeleteDC(maskDC);
DeleteObject(maskBitmap);
HDC newImageDC = CreateCompatibleDC(NULL);
HBITMAP newImage = CreateBitmap(nWidthDest, nHeightDest, 1,
GetDeviceCaps(newMaskDC, BITSPIXEL), NULL);
if (newImage == NULL)
{
SelectObject(dc, oldBitmap);
DeleteDC(dc);
DeleteDC(newMaskDC);
DeleteObject(bitmap);
return false;
}
HBITMAP oldNewImage = (HBITMAP)SelectObject(newImageDC, newImage);
StretchBlt(newImageDC, 0, 0, nWidthDest, nHeightDest, dc, 0, 0, nWidthSrc,
nHeightSrc, SRCCOPY);
SelectObject(dc, oldBitmap);
DeleteDC(dc);
DeleteObject(bitmap);
BitBlt( dcDest, nXOriginDest, nYOriginDest, nWidthDest, nHeightDest,
newMaskDC, 0, 0, SRCAND);
BitBlt( dcDest, nXOriginDest, nYOriginDest, nWidthDest, nHeightDest,
newImageDC, 0, 0, SRCPAINT);
SelectObject(newImageDC, oldNewImage);
DeleteDC(newImageDC);
SelectObject(newMaskDC, oldNewMask);
DeleteDC(newMaskDC);
DeleteObject(newImage);
DeleteObject(newMask);
return true;
}

璇存槑錛氭湰鏂囨彁渚涚殑TransparentBlt2鍑芥暟鏃ㄥ湪璇存槑閫忔槑浣嶅浘鐨勬樉紺哄師鐞嗭紝鍦╓indows2000浠ヤ笂鐜瀹為檯榪愮敤涓緩璁嬌鐢ㄧ幇鎴愮殑TransparentBlt鍑芥暟鏉ョ粯鍒墮忔槑浣嶅浘銆?

]]>
鍙岄摼琛ㄧ殑浠g爜瀹炵幇http://www.shnenglu.com/QUIRE-0216/archive/2007/08/24/30770.htmlQUIRE-0216QUIRE-0216Fri, 24 Aug 2007 09:06:00 GMThttp://www.shnenglu.com/QUIRE-0216/archive/2007/08/24/30770.htmlhttp://www.shnenglu.com/QUIRE-0216/comments/30770.htmlhttp://www.shnenglu.com/QUIRE-0216/archive/2007/08/24/30770.html#Feedback4http://www.shnenglu.com/QUIRE-0216/comments/commentRss/30770.htmlhttp://www.shnenglu.com/QUIRE-0216/services/trackbacks/30770.html#ifndef _DOUBLE_H_
#define _DOUBLE_H_

template<class T>
class Double;

template<class T>
class DoubleNode
{
 friend class Double<T>;
private:
 T data;
 DoubleNode<T> *pre;
 DoubleNode<T> *next;
};

template<class T>
class Double
{
 public:
  Double();//{head=end=NULL;}
  ~Double();
  void Erase();
  void reverse();
  int GetLength()const;
  bool IsEmpty()const;
  bool Find(int k, T& x)const;
  int Search(T& x)const;
  Double<T>& Delete(int k, T& x);
  Double<T>& Insert(int k, const T& x);
  void output(ostream& out)const;
  friend ostream& operator << (ostream& out, const Double<T>& x);
 private:
  DoubleNode<T> *head;
  DoubleNode<T> *end;
  int length;
};

template<class T>
Double<T>::Double()
{
 head = new DoubleNode<T>;
 end = new DoubleNode<T>;
 head->pre = NULL;
 head->next = end;
 end->pre = head;
 end->next = NULL;

 length = 0;
}

template<class T>
Double<T>::~Double()
{
 Erase();
}

template<class T>
void Double<T>::Erase()
{
 DoubleNode<T> *current = head;
 while (current)
 {
  head = head->next;
  delete current;
  current = head;
 }
 length = 0;
}

template<class T>
int Double<T>::GetLength()const
{
 return length;
}

template<class T>
bool Double<T>::IsEmpty()const
{
 return length == 0;
}

template<class T>
bool Double<T>::Find(int k, T& x)const
{

 if (length == 0)
 {
  throw exception("DoubleNode is empty!");
 }
 else if(k<1 || k>length)
 {
  throw exception("no find the position of k");
 }

 DoubleNode<T> *current = head->next;
 for (int i=1; (i<k)&&current; ++i)
 {
  current = current->next;
 }

 if (current)
 {
  x = current->data;
  return true;
 }

 return false;
}


template<class T>
int Double<T>::Search(T& x)const
{
 int nIndex = 1;
 DoubleNode<T> *current = head->next;
 while (current && current->data != x)
 {
  ++nIndex;
  current = current->next;
 }

 if (current)
 {
  return nIndex;
 }

 return -1;
}

template<class T>
Double<T>& Double<T>::Delete(int k, T& x)
{
 if (length == 0)
 {
  throw exception("DoubleNode is empty!");
 }
 else if(k<1 || k>length)
 {
  throw exception("no find the position of k, so can't delete!");
 }

 DoubleNode<T> *current = head->next; 
 for (int i=1; (i<k)&&current; ++i)
 {
  current = current->next;
 }

 DoubleNode<T> * p = current;
 current->pre->next = current->next;
 current->next->pre = current->pre;

 x = p->data;
 delete p;
 p = NULL;
 --length;

 return *this;
}


template<class T>
Double<T>& Double<T>::Insert(int k, const T& x)
{
 if (k>=0 && k<= length)
 {
  DoubleNode<T> *newNode = new DoubleNode<T>;
  newNode->data = x;

  DoubleNode<T> *current = head;
  for (int i=0; i<k; ++i)
  {
   current = current->next;
  }

  newNode->pre = current;
  newNode->next = current->next;
  current->next->pre = newNode;
  current->next = newNode;
  
  
  ++length;
 }
 else
 {
  throw exception("no find the position of k, so can't insert!");
 }

 return *this;
}

template<class T>
void Double<T>::output(ostream& out)const
{
 DoubleNode<T> *current = head->next;
 while (current!=end)
 {
  out << current->data << " ";
  current = current->next;
 }
}

template<class T>
ostream& operator<< (ostream& out, const Double<T>& x)
{
 x.output(out);
 return out;
}

template<class T>
void Double<T>::reverse()
{
 DoubleNode<T> *p1 = head;
 DoubleNode<T> *p2 = NULL;
 DoubleNode<T> *pNode;

 while (p1 != NULL)
 {
  pNode = p1;
  pNode->pre = p1->next;
  p1 = p1->next;
  pNode->next = p2;
  p2 = pNode;
 }

 end = head;
 head = p2;
}

#endif

浠ヤ笂涓哄弻閾捐〃鐨勫熀鏈搷浣滐紝浠g爜宸茬粡嫻嬭瘯榪囦簡錛屽彲浠ョ洿鎺ョ敤錛?br>鍏朵腑錛宧ead. end鍦ㄦ瀯閫犲嚱鏁版椂錛孨ew浜嗕袱涓璞★紝鏄負(fù)浜咺nsert 鍜?Delete鎿嶄綔鐨勬柟渚匡紒
鏇村ソ鐨勬柟寮忔槸:鎶婃寚閽堝拰鏁版嵁鍒嗗紑錛岃繖鏍穐ead,end灝卞彲浠ヨ妭鐪佸瓨璐┖闂翠簡錛?br>鏂瑰紡濡備笅錛?br>//鎸囬拡鏁版嵁閮ㄥ垎錛堝悗緇寚閽堝拰鍓嶉┍鎸囬拡錛?br>struct Node_base
{
 Node_base *next;
 Node_base *pre;
};

//娣誨姞瀹為檯鏁版嵁閮ㄥ垎
template <class T>
struct Node : public Node_base
{
 T m_data;
};



]]>
一本大道久久东京热无码AV| 91久久精品视频| 久久久久久九九99精品| a高清免费毛片久久| 欧美久久一级内射wwwwww.| 久久久免费精品re6| 亚洲国产日韩欧美久久| 久久久久免费看成人影片| 久久久久一本毛久久久| 狠狠色丁香久久婷婷综合五月| 国产福利电影一区二区三区久久久久成人精品综合 | 99久久精品国产高清一区二区| 久久播电影网| 久久久中文字幕| 久久免费的精品国产V∧| 亚洲国产一成久久精品国产成人综合 | 91久久香蕉国产熟女线看| 伊人久久精品无码av一区| 久久久91人妻无码精品蜜桃HD| 国产午夜久久影院| 九九久久自然熟的香蕉图片| 亚洲国产精品无码久久久不卡| 人人狠狠综合久久亚洲| 国产视频久久| 99久久精品国产一区二区蜜芽| 久久99精品久久久久久hb无码 | 久久久久久久波多野结衣高潮| 久久精品夜色噜噜亚洲A∨| 亚洲成人精品久久| 精品一区二区久久久久久久网站| 久久亚洲欧美国产精品| 亚洲国产精品无码久久一区二区| 精品国产日韩久久亚洲| 无码八A片人妻少妇久久| 一本一道久久a久久精品综合| 久久五月精品中文字幕| 久久青青色综合| 色综合久久中文字幕无码| 久久国产高潮流白浆免费观看| 久久人人爽人人爽人人片AV不 | 青青青国产精品国产精品久久久久|