锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产视频久久网,国产精品久久久久9999高清,国产在线一区二区三区四区http://m.shnenglu.com/Shihira/Open source - 寮鏀炬簮浠g爜 - 闁嬫斁鍘熷紕?- 銈兗銉椼兂銈姐兗銈?- 鞓ろ攬 靻岇姢 - 袨褌脅芯褉械薪 瀉芯寫 - 賲鬲賳鈥屫ㄘж?/description>zh-cnTue, 21 Oct 2025 22:33:12 GMTTue, 21 Oct 2025 22:33:12 GMT60鍗風Н涓庡鉤婊戞護娉㈠櫒鐨勫浘鍍忓鐞嗗簲鐢?/title><link>http://m.shnenglu.com/Shihira/archive/2015/08/12/211542.html</link><dc:creator>Shihira</dc:creator><author>Shihira</author><pubDate>Tue, 11 Aug 2015 16:35:00 GMT</pubDate><guid>http://m.shnenglu.com/Shihira/archive/2015/08/12/211542.html</guid><wfw:comment>http://m.shnenglu.com/Shihira/comments/211542.html</wfw:comment><comments>http://m.shnenglu.com/Shihira/archive/2015/08/12/211542.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/Shihira/comments/commentRss/211542.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/Shihira/services/trackbacks/211542.html</trackback:ping><description><![CDATA[<div><div><h1>鍗風Н鐨勪粙緇?/h1> <p>鍗風Н<em>錛坈onvolution錛?/em>鏄硾鍑藉垎鏋愰噷鐨勪竴涓蹇碉紝涓嶈繃娉涘嚱鍒嗘瀽涓鑸兘鏄暟瀛︾郴鎵嶅鐨勶紝璁$畻鏈虹郴鐨勫鐢熷ぇ澶氬湪姒傜巼緇熻璇炬湰閲屼簡瑙e埌銆傚畠鍒嗕負涓ょ褰㈠紡錛屼竴涓槸紱繪暎褰㈠紡錛屼竴涓槸榪炵畫錛堢Н鍒嗭級褰㈠紡銆傚湪鍥懼儚澶勭悊涓垜浠洿鍏沖績紱繪暎鍗風Н錛屼笉榪囦篃鍏堢湅鐪嬬Н鍒嗗艦寮忕殑鍗風Н銆傜幇鍦ㄥ亣璁炬垜浠湁涓や釜鍑芥暟<img src="http://latex.codecogs.com/gif.latex?f%28x%29" alt="f(x)" />鍜?img src="http://latex.codecogs.com/gif.latex?g%28x%29" alt="g(x)" />錛岃繖閲?img src="http://latex.codecogs.com/gif.latex?g%28x%29" alt="g(x)" />鍙堝彨鍋?strong>騫蟲粦鍑芥暟</strong>鎴栬?strong>鍗風Н鏍?/strong>錛岄偅涔堝畠浠湪榪炵畫絀洪棿鐨勫嵎縐槸錛?/p> <img src="http://latex.codecogs.com/gif.latex?%28f*g%29%28x%29=%5Cint_%7B-%5Cinfty%7D%5E%7B%5Cinfty%7Df%28t%29g%28x-t%29dt" alt="(f*g)(x)=\int_{-\infty}^{\infty}f(t)g(x-t)dt" style="display: block; margin: 20px; margin-left: auto; margin-right: auto;" /> <p>涓鑸垜浠湁涓涓繖鏍風殑緇撹錛屽氨鏄綋<img src="http://latex.codecogs.com/gif.latex?f%28x%29" alt="f(x)" />緇忚繃瓚沖澶氭鐩稿悓騫蟲粦鍑芥暟<img src="http://latex.codecogs.com/gif.latex?g%28x%29" alt="g(x)" />鍗風Н錛屽氨浼氳凍澶熸帴榪戦珮鏂嚱鏁幫紝涔熷氨鏄鎬佸垎甯冪殑鍑芥暟褰㈠紡銆傚嵎縐氨鏄竴縐嶅鉤婊戞搷浣滐紝榪欒鏄庨珮鏂嚱鏁板氨鏄?#8220;鏈騫蟲粦鐨勫嚱鏁?#8221;銆傚紩鍏ョ儹鍔涘涓喌鐨勬蹇碉紝楂樻柉鍑芥暟灝辨槸鎷ユ湁鏈楂樼喌鐨勫嚱鏁幫紝鏈紼沖畾鐨勭姸鎬侊紝浠ヨ嚦浜庤嚜鐒剁晫澶у鏁扮殑緇熻瑙勫緥閮藉憟鐜板嚭姝f佸垎甯冿細</p> <img src="http://latex.codecogs.com/gif.latex?%28%28%5Ccdots%28%28f*g%29*g%29%5Ccdots%29*g%29%28x%29%20%5Crightarrow%20%5Cfrac%201%7B%5Csigma%5Csqrt%7B2%5Cpi%7D%7D%20e%5E%7B-x%5E2/%7B%5Csigma%5E2%7D%7D" alt="((\cdots((f*g)*g)\cdots)*g)(x) \rightarrow \frac 1{\sigma\sqrt{2\pi}} e^{-x^2/{\sigma^2}}" style="display: block; margin: 20px; margin-left: auto; margin-right: auto;" /> <p>涓嬮潰浠嬬粛紱繪暎褰㈠紡鐨勫嵎縐傝繖鍗風Н錛岄鍏堟槸鐢辨湁闄愰」鐨勫欏瑰紡浣撶幇銆傜濂囩殑鏄紝鑰屽畠浠殑涔樼Н灝辨槸鍗風Н銆傞鍏堟垜浠鏈変袱涓欏瑰紡<img src="http://latex.codecogs.com/gif.latex?p%20=%20a_0%20+%20a_1%20x%20+%20a_2%20x%5E2" alt="p = a_0 + a_1 x + a_2 x^2" />浠ュ強<img src="http://latex.codecogs.com/gif.latex?q%20=%20b_0%20+%20b_1%20x%20+%20b_2%20x%5E2%20+%20b_3%20x%5E3" alt="q = b_0 + b_1 x + b_2 x^2 + b_3 x^3" />銆傝綆楀畠浠殑涔樼Н錛?/p> <img src="http://latex.codecogs.com/gif.latex?%5Cbegin%7Balign*%7D%0Ar%20=%20p%5Ccdot%20q%20&=%20%28a_0%20b_0%29%20%5C%5C%0A&+%20%28a_0%20b_1%20+%20a_1%20b_0%29%20x%20%5C%5C%0A&+%20%28a_0%20b_2%20+%20a_1%20b_1+%20a_2%20b_0%29%20x%5E2%20%5C%5C%0A&+%20%28a_0%20b_3%20+%20a_1%20b_2%20+%20a_2%20b_1%29%20x%5E3%20%5C%5C%0A&+%20%28a_1%20b_3%20+%20a_2%20b_2%29%20x%5E4%20%5C%5C%0A&+%20%28a_2%20b_3%29%20x%5E5%0A%5Cend%7Balign*%7D" alt="\begin{align*} r = p\cdot q &= (a_0 b_0) \\ &+ (a_0 b_1 + a_1 b_0) x \\ &+ (a_0 b_2 + a_1 b_1+ a_2 b_0) x^2 \\ &+ (a_0 b_3 + a_1 b_2 + a_2 b_1) x^3 \\ &+ (a_1 b_3 + a_2 b_2) x^4 \\ &+ (a_2 b_3) x^5 \end{align*}" style="display: block; margin: 20px; margin-left: auto; margin-right: auto;" /> <p>鍐嶅紩鍏ョ鏁e艦寮忓嵎縐紙鍚戦噺鍗風Н錛夌殑瀹氫箟錛屽ぇ瀹舵瘮杈冧竴涓嬭繖涓畾涔夊拰涓婇潰澶氶」寮忕殑璁$畻銆傜◢寰鏄庝竴涓嬶紝涓嫭鍙風殑鎰忎箟鏄?strong>p[n]浠h〃鍚戦噺絎琻涓厓绱?/strong>銆傚皢涓や釜澶氶」寮忕殑緋繪暟鍐欐垚鍚戦噺褰㈠紡鐒跺悗榪涜鍚戦噺鍗風Н錛屼篃灝辨槸渚嬪<img src="http://latex.codecogs.com/gif.latex?p%20=%20%5Ba_0,%20a_1,%20a_2%5D" alt="p = [a_0, a_1, a_2]" />錛岃屾病瀹氫箟鐨勫湴鏂瑰綋浣?銆傚彲浠ュ彂鐜幫紝涓よ呮槸瀹屽叏涓鑷寸殑錛?/p> <img src="http://latex.codecogs.com/gif.latex?%5Cbegin%7Balign*%7D%0A%28p%20*%20q%29%5Bn%5D%20&=%20%5Csum_%7Bm=-%5Cinfty%7D%5E%5Cinfty%20p%5Bm%5D%5Ccdot%20q%5Bn-m%5D%20%5C%5C%0Ar%5B1%5D%20&=%20%5Csum_%7Bm=0%7D%5E1%20%20p%5Bm%5D%5Ccdot%20q%5B1-m%5D%20&&=%20a_0%20b_1%20+%20a_1%20b_0%20%5C%5C%0Ar%5B2%5D%20&=%20%5Csum_%7Bm=0%7D%5E2%20%20p%5Bm%5D%5Ccdot%20q%5B2-m%5D%20&&=%20a_0%20b_2%20+%20a_1%20b_1%20+%20a_2%20b_0%20%5C%5C%0A&%5Ccdots%0A%5Cend%7Balign*%7D" alt="\begin{align*} (p * q)[n] &= \sum_{m=-\infty}^\infty p[m]\cdot q[n-m] \\ r[1] &= \sum_{m=0}^1 p[m]\cdot q[1-m] &&= a_0 b_1 + a_1 b_0 \\ r[2] &= \sum_{m=0}^2 p[m]\cdot q[2-m] &&= a_0 b_2 + a_1 b_1 + a_2 b_0 \\ &\cdots \end{align*}" style="display: block; margin: 20px; margin-left: auto; margin-right: auto;" /> <blockquote><p>鐭ラ亾浜嗗欏瑰紡鐨勪箻縐氨鏄叾鐩稿簲鐨勫嵎縐紝鎴戜滑鐢氳嚦鍙互鐩存帴寰楀嚭涓や釜騫傜駭鏁板嵎縐殑緇撴灉銆傚洜涓烘嘲鍕掔駭鏁板氨鏄箓綰ф暟鐨勪竴縐嶏紝鎵浠ユ垜浠彲浠ュ皢鍑犱箮鎵鏈夌殑榪炵畫鍑芥暟杞崲鎴愮鏁e艦寮忥紝閬垮厤浜嗙箒澶嶇殑縐垎榪愮畻錛氭瘮濡傛垜浠笇鏈涘緱鍒?<img src="http://latex.codecogs.com/gif.latex?r%28x%29%20=%20p%28x%29%20*%20q%28x%29" alt="r(x) = p(x) * q(x)" />錛屽叾涓?img src="http://latex.codecogs.com/gif.latex?p%28x%29%20=%20%5Csum%20a_i%20x%5Ei,%5C%20%20q%28x%29%20=%20%5Csum%20b_i%20x%5Ei" alt="p(x) = \sum a_i x^i,\ q(x) = \sum b_i x^i" />錛屽彧闇瑕佺畝鍗曞湴璁$畻榪欎袱涓駭鏁扮殑<strong>鏌タ涔樼Н</strong>錛屾墍寰楃粨鏋滃氨鏄?img src="http://latex.codecogs.com/gif.latex?r%28x%29" alt="r(x)" />鐨勫嵎縐傚綋鐒朵簡錛岃繖鏄悗璇濓紝涓庢湰鏂囩殑涓婚鏃犲叧銆?/p></blockquote> <h1>鍗風Н涓庡浘鍍忓鐞?/h1> <p>鍦ㄥ紑濮嬭鍥懼儚澶勭悊涔嬪墠錛屾垜甯屾湜鍏堢悊瑙d竴涓嬪嵎縐殑鏁翠釜榪囩▼鏄庢牱鐨勩備粠涓婇潰鐨勫叕寮忕湅寰楄繕鏄湁鐐規嚨鎳墊噦鎳傦紝浠庣洿瑙変笂鍘葷悊瑙d竴涓嬪緢鏈夊繀瑕併傝瀵熷嵎縐殑鍏紡浠ュ強涓嬮潰鐨勫浘鐗囷紝榪欎釜榪囩▼鍙互鐪嬩綔錛屽綋浣犳兂姹備竴涓猺[n]鐨勬椂鍊欙細</p> <blockquote><p>浣犲厛鎶婂嵎縐牳q鍙犲湪p涓婇潰錛?strong>灝介噺</strong>浣垮乏绔潬榪戯紙濡傛灉宸﹀榻愬氨鍐嶅ソ涓嶈繃浜嗭級錛岀劧鍚庣湅鐪嬪湪<strong>[0, n]鍐?/strong>p, q閲嶅彔鐨勯儴鍒嗘槸浠庡摢閲屽埌鍝噷錛屽垎鍒啓鎴愬悜閲忥紝閭d箞r[n]灝辯瓑浜庡叾涓竴涓悜閲忎笌鍙︿竴涓悜閲忕殑<strong>閫嗗簭</strong>鐨勫唴縐?/p></blockquote> <p>姣斿褰搉 = 2鏃訛紝涓や釜鍚戦噺鏄?code>[a_0, a_1, a_2]</code>鍜?code>[b_2, b_1, b_0]</code>錛沶 = 4鏃訛紝涓や釜鍚戦噺鏄?code>[a_1, a_2, a_3, a_4]</code>鍜?code>[b_3, b_2, b_1, b_0]</code>銆傝嚦浜庢眰鍐呯Н錛屼竴瀹氶毦涓嶅掍綘銆備笅鍥捐鏄庝簡榪欎竴鐐癸細</p> <img src="http://latex.codecogs.com/gif.latex?%5Cbegin%7Balign*%7D%0A&&%20a_0%20%20%20%20&&%20a_1%20%20%20%20&&%20a_2%20%20%20%20&&%20a_3%20%20%20%20&&%20a_4%20%5C%5C%0A&&%20a_0b_0%20&&%20a_0b_1%20&&%20a_0b_2%20&&%20a_0b_3%20%5C%5C%0A&&%20%20%20%20%20%20%20%20&&%20a_1b_0%20&&%20a_1b_1%20&&%20a_1b_2%20&&%20a_1b_3%20%5C%5C%0A&&%20%20%20%20%20%20%20%20&&%20%20%20%20%20%20%20%20&&%20a_2b_0%20&&%20a_2b_1%20&&%20a_2b_2%20&&%20a_2b_3%20%5C%5C%0A&&%20%20%20%20%20%20%20%20&&%20%20%20%20%20%20%20%20&&%20%20%20%20%20%20%20%20&&%20a_3b_0%20&&%20a_3b_1%20&&%20a_3b_2%20&&%20a_3b_3%20%5C%5C%0A&&%20%20%20%20%20%20%20%20&&%20%20%20%20%20%20%20%20&&%20%20%20%20%20%20%20%20&&%20%20%20%20%20%20%20%20&&%20a_4b_0%20&&%20a_4b_1%20&&%20a_4b_2%20&&%20a_4b_3%20%5C%5C%0A%5Chline%0A&&%20c_0%20%20%20%20&&%20c_1%20%20%20%20&&%20c_2%20%20%20%20&&%20c_3%20%20%20%20&&%20c_4%20%20%20%20&&%20c_5%20%20%20%20&&%20c_6%20%20%20%20&&%20c_7%0A%5Cend%7Balign*%7D" alt="\begin{align*} && a_0 && a_1 && a_2 && a_3 && a_4 \\ && a_0b_0 && a_0b_1 && a_0b_2 && a_0b_3 \\ && && a_1b_0 && a_1b_1 && a_1b_2 && a_1b_3 \\ && && && a_2b_0 && a_2b_1 && a_2b_2 && a_2b_3 \\ && && && && a_3b_0 && a_3b_1 && a_3b_2 && a_3b_3 \\ && && && && && a_4b_0 && a_4b_1 && a_4b_2 && a_4b_3 \\ \hline && c_0 && c_1 && c_2 && c_3 && c_4 && c_5 && c_6 && c_7 \end{align*}" style="display: block; margin: 20px; margin-left: auto; margin-right: auto;" /> <p>涓婇潰鏄鏌愪竴鐐逛笂鍗風Н鐨勭悊瑙c傚鏁翠釜鍩熺殑鍗風Н錛屽垯鍙互鐪嬫垚鏄皢鍗風Н鏍革紙闄や簡寮澶村嚑涓錛変笉鍋滃悜鍙崇Щ鍔紝姣忕Щ鍔ㄤ竴鏍煎氨灝嗛噸鍙犻儴鍒嗘嬁鍑烘潵姹傚唴縐?/p> <p>榪欐椂鎴戜滑鍙互鎶婂浘鍍忓鐞嗗拰鍗風Н鑱旂郴璧鋒潵浜嗐傚浘鍍忓鐞嗘槸錛屽皢涓鍓?#8220;婧愬浘鍍?#8221;<em>錛圫ource錛?/em>錛岄氳繃涓浜涚畻娉曪紝鍙樻垚涓鍓?#8220;鐩爣鍥懼儚”<em>錛圖estination錛?/em>銆傚綋鎴戜滑榪涜騫蟲粦澶勭悊鐨勬椂鍊欙紝鐢ㄥ埌涓涓彨鍋氭護娉㈠櫒<em>錛坒ilter錛?/em>鐨?涓滆タ錛屼篃鍙仛婊ら暅銆傛兂鎯蟲垜浠幇瀹炵敓媧諱腑鏀懼ぇ闀滄槸鎬庝箞鐢ㄧ殑錛氭嬁鐫鏀懼ぇ闀滐紝浠庢姤綰哥殑宸︿笂瑙掑紑濮嬶紝涓鐩存壂鍟婃壂鍒板彸涓嬭錛屾壂鐨勮繃紼嬩腑涓鐩存湜鐫鏀懼ぇ闀滃拰鎶ョ焊鐨勯噸鍙犲尯 鍩燂紙鍏跺疄灝辨槸鏈涚潃鏀懼ぇ闀滐紝鍥犱負瀹冩瘮鎶ョ焊灝忓浜嗭級錛岃繖鏍蜂綘灝辨祻瑙堝畬浜嗕竴寮犳斁澶ц繃鐨勬姤綰搞傚鉤婊戞護闀滀篃鏄悓鏍風殑浣跨敤鏂規硶錛屼粠婧愬浘鐨勫乏涓婅寮濮嬫壂鍒板彸涓嬭錛屾壂鐨勮繃 紼嬩腑涓鐩村彇鍑洪噸鍙犻儴鍒嗚繘琛?strong>鍐呯Н</strong>璁$畻錛岀劧鍚庡皢緇撴灉瀛樻斁鍒扮洰鏍囧浘鍍忎腑 —— 鏄劇劧榪欎釜鎿嶄綔璺熷嵎縐槸涓鑷寸殑錛屽彧涓嶈繃瀹氫箟鍦ㄤ簩緇寸┖闂村唴銆?/p> <p>涓轟簡鏂逛究閲忓寲琛ㄧず錛屾垜浠妸鍥懼儚鎶借薄鎴愬畾涔夊湪<img src="http://latex.codecogs.com/gif.latex?R%20%5Ccap%20%5B0,%201%5D" alt="R \cap [0, 1]" /> 鏁扮幆鍐呯殑浜岀淮鐭╅樀錛屽叾鎰忎箟鏄?strong>鐏板害鍊?/strong>錛岄鑹蹭俊鎭垜浠殏涓斿拷鐣ャ傚嵎縐牳錛屼篃灝辨槸婊ゆ嘗鍣ㄥ悓鏍蜂篃鏄畾涔夊湪<img src="http://latex.codecogs.com/gif.latex?R%20%5Ccap%20%5B0,%201%5D" alt="R \cap [0, 1]" /> 鍐呯殑浜岀淮鐭╅樀銆傝繖鏍鳳紝浜岀淮鐨勫嵎縐垜浠繖鏍峰畾涔夊畠鐨勭鏁e艦寮忥細</p> <img src="http://latex.codecogs.com/gif.latex?%5Ctext%7BDest%7D%5Bi,%20j%5D%20=%20%5Csum_%7By=-%5Cinfty%7D%5E%5Cinfty%20%5Csum_%7Bx=-%5Cinfty%7D%5E%5Cinfty%20%5Ctext%7BSrc%7D%5By,x%5D%20%5Ccdot%20%5Ctext%7BKer%7D%5Bi%20-%20y,%20j%20-%20x%5D" alt="\text{Dest}[i, j] = \sum_{y=-\infty}^\infty \sum_{x=-\infty}^\infty \text{Src}[y,x] \cdot \text{Ker}[i - y, j - x]" style="display: block; margin: 20px; margin-left: auto; margin-right: auto;" /> <p>鎴戜滑鐨勫嵎縐牳澶у皬騫朵笉鏄棤闄愮殑錛屽畠涓涓崐寰剅錛岃繖鏍峰畠鐨勫ぇ灝忓氨鏄?r+1銆傝瀹氫簡榪欎釜r浣垮緱錛屽綋|x| > r 鎴?|y| > r錛岄兘鏈塊er[y, x] = 0銆傝瀹氳繃澶у皬涔嬪悗錛岀敱 <code>|i-y| < r; |j-x| < r</code>寰楀埌 <strong><code>i-r < y < i+r; j-r < x < j+r</code></strong>銆傚悓鏃舵垜浠瀹欴est鍜孲rc鐨勫ぇ灝忔槸<img src="http://latex.codecogs.com/gif.latex?m%20%5Ctimes%20n" alt="m \times n" />銆備簬鏄垜浠緱鍒頒簡婊ゆ嘗鍣ㄧ殑綆楁硶錛?/p> <img src="http://latex.codecogs.com/gif.latex?%5Ctext%7BDest%7D%5Bi,%20j%5D%20=%20%5Csum_%7By=%5Cmax%5C%7B0,i-r%5C%7D%7D%5E%7B%5Cmin%5C%7Bi+r,n%5C%7D%7D%20%5Cleft%28%20%5Csum_%7Bx=%5Cmax%5C%7B0,j-r%5C%7D%7D%5E%7B%5Cmin%5C%7Bj+r,m%5C%7D%7D%20%5Ctext%7BSrc%7D%5By,%20x%5D%20%5Ccdot%20%5Ctext%7BKer%7D%5Bi%20-%20y,%20j%20-%20x%5D%20%5Cright%29" alt="\text{Dest}[i, j] = \sum_{y=\max\{0,i-r\}}^{\min\{i+r,n\}} \left( \sum_{x=\max\{0,j-r\}}^{\min\{j+r,m\}} \text{Src}[y, x] \cdot \text{Ker}[i - y, j - x] \right)" style="display: block; margin: 20px; margin-left: auto; margin-right: auto;" /> <h1>楂樻柉婊ゆ嘗鍣?/h1> <div imagebubble"=""> <img src="http://upload-images.jianshu.io/upload_images/610338-54f1c66e805cdc4c.gif?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="浜岀淮鐨勯珮鏂嚱鏁幫紙淇楃О閬垮瓡濂楀嚱鏁幫級" data-original-src="http://upload-images.jianshu.io/upload_images/610338-54f1c66e805cdc4c.gif" /><br /><div>浜岀淮鐨勯珮鏂嚱鏁幫紙淇楃О閬垮瓡濂楀嚱鏁幫級</div> </div> <p>楂樻柉婊ゆ嘗鍣ㄦ槸鏈甯哥敤鐨勫鉤婊戞護娉㈠櫒涔嬩竴錛屽湪Photoshop閲岄潰瀹冭鐢ㄤ綔<strong>楂樻柉妯$硦婊ら暅</strong>銆傞珮鏂護娉㈠櫒鐨勫畾涔夊緢緇忓吀錛屽氨鏄畝鍗曞湴鎶婃鎬佸垎甯冪鏁e紑鏉ャ備簩緇村艦寮忓彧鏄崟綰妸x鏇夸唬鎴?x<sup>2</sup> + y<sup>2</sup>)錛岀劧鍚庝慨鏀圭郴鏁頒護瀹炴暟鍩熶笂鐨勭Н鍒嗕負1錛?/p> <img src="http://latex.codecogs.com/gif.latex?%5Cbegin%7Balign*%7D%0A%5Ctext%7BKer%7D_1%5Bx%5D%20&=%20%5Cfrac%201%7B%5Csigma%5Csqrt%7B2%5Cpi%7D%7D%20e%5E%7B-x%5E2/%7B%5Csigma%5E2%7D%7D%20%5C%5C%0A%5Ctext%7BKer%7D_2%5Bi,%20j%5D%20&=%20%5Cfrac%201%7B2%5Csigma%5E2%5Cpi%7D%20e%5E%7B-%28i%5E2+j%5E2%29/%7B%5Csigma%5E2%7D%7D%0A%5Cend%7Balign*%7D" alt="\begin{align*} \text{Ker}_1[x] &= \frac 1{\sigma\sqrt{2\pi}} e^{-x^2/{\sigma^2}} \\ \text{Ker}_2[i, j] &= \frac 1{2\sigma^2\pi} e^{-(i^2+j^2)/{\sigma^2}} \end{align*}" style="display: block; margin: 20px; margin-left: auto; margin-right: auto;" /> <p>涔熻浣犲凡緇忓彂鐜頒簡涓涓繖鏍風殑瑙勫緥錛岃繖涓瑙勫緥錛岃繖鍦ㄦ洿楂樼淮涓婁粛鐒舵槸婊¤凍鐨勶紝涔熷氨鏄湪榪炵畫絀洪棿閲屽悓鏍鋒弧瓚熾傝繖灝嗘垚涓烘垜浠紭鍖栫畻娉曠殑鍏抽敭銆傚皢榪欎釜瑙勫緥浠e洖鍒頒簩緇寸鏁e嵎縐殑鍏紡閲岋紝鍥犱負y鍦ㄧ浜屼釜榪炲姞涓浉褰撲簬甯告暟緋繪暟鍙互鎻愬嚭鏉ワ紝鎴戜滑鍙戠幇錛?/p> <img src="http://latex.codecogs.com/gif.latex?%5Cbegin%7Balign*%7D%0A%5Ctext%7BKer%7D_2%5Bi,%20j%5D%20&=%20%5Ctext%7BKer%7D_1%5Bi%5D%20%5Ccdot%20%5Ctext%7BKer%7D_1%5Bj%5D%20%5C%5C%0A%5Ctext%7BDest%7D%5Bi,%20j%5D%20&=%20%5Csum_%7By=-%5Cinfty%7D%5E%5Cinfty%20%5Csum_%7Bx=-%5Cinfty%7D%5E%5Cinfty%20%5Ctext%7BSrc%7D%5By,x%5D%20%5Ccdot%20%5Ctext%7BKer%7D_2%5Bi%20-%20y,%20j%20-%20x%5D%20%5C%5C%0A&=%20%5Csum_%7By=-%5Cinfty%7D%5E%5Cinfty%20%5Csum_%7Bx=-%5Cinfty%7D%5E%5Cinfty%20%5Ctext%7BSrc%7D%5By,x%5D%20%5Ccdot%20%5Ctext%7BKer%7D_1%5Bi-y%5D%20%5Ccdot%20%5Ctext%7BKer%7D_1%5Bj-x%5D%5C%5C%0A&=%20%5Csum_%7By=-%5Cinfty%7D%5E%5Cinfty%20%5Cleft%28%20%5Csum_%7Bx=-%5Cinfty%7D%5E%5Cinfty%20%5Ctext%7BSrc%7D%5By,x%5D%20%5Ccdot%20%5Ctext%7BKer%7D_1%5Bj-x%5D%5Cright%29%20%5Ctext%7BKer%7D_1%5Bi-y%5D%0A%5Cend%7Balign*%7D" alt="\begin{align*} \text{Ker}_2[i, j] &= \text{Ker}_1[i] \cdot \text{Ker}_1[j] \\ \text{Dest}[i, j] &= \sum_{y=-\infty}^\infty \sum_{x=-\infty}^\infty \text{Src}[y,x] \cdot \text{Ker}_2[i - y, j - x] \\ &= \sum_{y=-\infty}^\infty \sum_{x=-\infty}^\infty \text{Src}[y,x] \cdot \text{Ker}_1[i-y] \cdot \text{Ker}_1[j-x]\\ &= \sum_{y=-\infty}^\infty \left( \sum_{x=-\infty}^\infty \text{Src}[y,x] \cdot \text{Ker}_1[j-x]\right) \text{Ker}_1[i-y] \end{align*}" style="display: block; margin: 20px; margin-left: auto; margin-right: auto;" /> <p>濡傛灉x榪炲姞鎵琛ㄧず鏄嵎縐槸浠庡彸涓婅寮濮嬫寜鐓ф枃瀛椾功鍐欓『搴忎粠宸﹀埌鍙籌紝鐒跺悗浠庝笂鍒頒笅鐨勯『搴忚繘琛屼竴緇村嵎縐紝閭d箞y榪炲姞琛ㄧず鐨勫嵎縐氨鏄厛浠庝笂鍒頒笅錛屽啀浠庡乏鍒版湁鐨勯『搴忓嵎縐傚湪OpenCV鎻愪緵鐨勬暟鎹粨鏋勭殑鍩虹涓婏紝涓嶇敤imgproc鎻愪緵鐨勭畻娉曪紝鎴戝啓浜嗕竴涓ず渚嬶細</p><p><br /></p><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; "> 1</span> <span style="color: #008000; ">//</span><span style="color: #008000; "> cflags: -lopencv_highgui -lopencv_core</span><span style="color: #008000; "><br /></span><span style="color: #008080; "> 2</span> <span style="color: #008000; "></span><span style="color: #000000; "><br /></span><span style="color: #008080; "> 3</span> <span style="color: #000000; ">#include </span><span style="color: #000000; "><</span><span style="color: #000000; ">iostream</span><span style="color: #000000; ">></span><span style="color: #000000; "><br /></span><span style="color: #008080; "> 4</span> <span style="color: #000000; ">#include </span><span style="color: #000000; "><</span><span style="color: #000000; ">cmath</span><span style="color: #000000; ">></span><span style="color: #000000; "><br /></span><span style="color: #008080; "> 5</span> <span style="color: #000000; ">#include </span><span style="color: #000000; "><</span><span style="color: #000000; ">opencv2</span><span style="color: #000000; ">/</span><span style="color: #000000; ">highgui</span><span style="color: #000000; ">/</span><span style="color: #000000; ">highgui.hpp</span><span style="color: #000000; ">></span><span style="color: #000000; "><br /></span><span style="color: #008080; "> 6</span> <span style="color: #000000; "><br /></span><span style="color: #008080; "> 7</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">using</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">namespace</span><span style="color: #000000; "> cv;<br /></span><span style="color: #008080; "> 8</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">using</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">namespace</span><span style="color: #000000; "> std;<br /></span><span style="color: #008080; "> 9</span> <span style="color: #000000; "><br /></span><span style="color: #008080; ">10</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">const</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">char</span><span style="color: #000000; ">*</span><span style="color: #000000; "> title </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">"</span><span style="color: #000000; ">gaussian-filter</span><span style="color: #000000; ">"</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; ">11</span> <span style="color: #000000; "><br /></span><span style="color: #008080; ">12</span> <span style="color: #000000; ">Mat kernelMatrix(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> radius, </span><span style="color: #0000FF; ">double</span><span style="color: #000000; "> sigma)<br /></span><span style="color: #008080; ">13</span> <span style="color: #000000; ">{<br /></span><span style="color: #008080; ">14</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> d </span><span style="color: #000000; ">=</span><span style="color: #000000; "> radius </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; ">1</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; ">15</span> <span style="color: #000000; ">        Mat kernel(</span><span style="color: #000000; ">2</span><span style="color: #000000; ">, d, CV_64F);<br /></span><span style="color: #008080; ">16</span> <span style="color: #000000; "><br /></span><span style="color: #008080; ">17</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">double</span><span style="color: #000000; "> coef </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; ">18</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> i </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">0</span><span style="color: #000000; ">; i </span><span style="color: #000000; "><=</span><span style="color: #000000; "> radius; i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">) {<br /></span><span style="color: #008080; ">19</span> <span style="color: #000000; ">                </span><span style="color: #008000; ">//</span><span style="color: #008000; "> f(x) = 1/(sigma * sqrt(2 pi)) * e ^ -x^2/(2 s^2)</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">20</span> <span style="color: #008000; "></span><span style="color: #000000; ">                </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> dx </span><span style="color: #000000; ">=</span><span style="color: #000000; "> i </span><span style="color: #000000; ">-</span><span style="color: #000000; "> radius;<br /></span><span style="color: #008080; ">21</span> <span style="color: #000000; ">                </span><span style="color: #0000FF; ">double</span><span style="color: #000000; "> dx_2 </span><span style="color: #000000; ">=</span><span style="color: #000000; "> dx </span><span style="color: #000000; ">*</span><span style="color: #000000; "> dx;<br /></span><span style="color: #008080; ">22</span> <span style="color: #000000; ">                </span><span style="color: #0000FF; ">double</span><span style="color: #000000; "> w </span><span style="color: #000000; ">=</span><span style="color: #000000; "> pow(M_E, </span><span style="color: #000000; ">-</span><span style="color: #000000; "> dx_2 </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; "> sigma </span><span style="color: #000000; ">*</span><span style="color: #000000; "> sigma));<br /></span><span style="color: #008080; ">23</span> <span style="color: #000000; "><br /></span><span style="color: #008080; ">24</span> <span style="color: #000000; ">                coef </span><span style="color: #000000; ">+=</span><span style="color: #000000; "> w;<br /></span><span style="color: #008080; ">25</span> <span style="color: #000000; ">                kernel.at</span><span style="color: #000000; "><</span><span style="color: #0000FF; ">double</span><span style="color: #000000; ">></span><span style="color: #000000; ">(</span><span style="color: #000000; ">0</span><span style="color: #000000; ">, i) </span><span style="color: #000000; ">=</span><span style="color: #000000; "> w;<br /></span><span style="color: #008080; ">26</span> <span style="color: #000000; ">                kernel.at</span><span style="color: #000000; "><</span><span style="color: #0000FF; ">double</span><span style="color: #000000; ">></span><span style="color: #000000; ">(</span><span style="color: #000000; ">0</span><span style="color: #000000; ">, d </span><span style="color: #000000; ">-</span><span style="color: #000000; "> i </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; "> w;<br /></span><span style="color: #008080; ">27</span> <span style="color: #000000; ">                </span><span style="color: #008000; ">//</span><span style="color: #008000; "> when you used values from i to j (j>i), the sum of them is:<br /></span><span style="color: #008080; ">28</span> <span style="color: #008000; ">                </span><span style="color: #008000; ">//</span><span style="color: #008000; "> kernel[1, j] - (i ? kernel[1, i-1] : 0)</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">29</span> <span style="color: #008000; "></span><span style="color: #000000; ">                kernel.at</span><span style="color: #000000; "><</span><span style="color: #0000FF; ">double</span><span style="color: #000000; ">></span><span style="color: #000000; ">(</span><span style="color: #000000; ">1</span><span style="color: #000000; ">, i) </span><span style="color: #000000; ">=</span><span style="color: #000000; "> coef;<br /></span><span style="color: #008080; ">30</span> <span style="color: #000000; ">        }<br /></span><span style="color: #008080; ">31</span> <span style="color: #000000; "><br /></span><span style="color: #008080; ">32</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> i </span><span style="color: #000000; ">=</span><span style="color: #000000; "> radius </span><span style="color: #000000; ">+</span><span style="color: #000000; "> </span><span style="color: #000000; ">1</span><span style="color: #000000; ">; i </span><span style="color: #000000; "><</span><span style="color: #000000; "> d; i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">) {<br /></span><span style="color: #008080; ">33</span> <span style="color: #000000; ">                coef </span><span style="color: #000000; ">+=</span><span style="color: #000000; "> kernel.at</span><span style="color: #000000; "><</span><span style="color: #0000FF; ">double</span><span style="color: #000000; ">></span><span style="color: #000000; ">(</span><span style="color: #000000; ">0</span><span style="color: #000000; ">, i);<br /></span><span style="color: #008080; ">34</span> <span style="color: #000000; ">                kernel.at</span><span style="color: #000000; "><</span><span style="color: #0000FF; ">double</span><span style="color: #000000; ">></span><span style="color: #000000; ">(</span><span style="color: #000000; ">1</span><span style="color: #000000; ">, i) </span><span style="color: #000000; ">=</span><span style="color: #000000; "> coef;<br /></span><span style="color: #008080; ">35</span> <span style="color: #000000; ">        }<br /></span><span style="color: #008080; ">36</span> <span style="color: #000000; "><br /></span><span style="color: #008080; ">37</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> kernel;<br /></span><span style="color: #008080; ">38</span> <span style="color: #000000; ">}<br /></span><span style="color: #008080; ">39</span> <span style="color: #000000; "><br /></span><span style="color: #008080; ">40</span> <span style="color: #000000; "><br /></span><span style="color: #008080; ">41</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> convolution(</span><span style="color: #0000FF; ">const</span><span style="color: #000000; "> Mat</span><span style="color: #000000; ">&</span><span style="color: #000000; "> img, </span><span style="color: #0000FF; ">const</span><span style="color: #000000; "> Mat</span><span style="color: #000000; ">&</span><span style="color: #000000; "> kernel, Mat</span><span style="color: #000000; ">&</span><span style="color: #000000; "> output, </span><span style="color: #0000FF; ">bool</span><span style="color: #000000; "> t </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">)<br /></span><span style="color: #008080; ">42</span> <span style="color: #000000; ">{<br /></span><span style="color: #008080; ">43</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> y </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">0</span><span style="color: #000000; ">, x </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">0</span><span style="color: #000000; ">; y </span><span style="color: #000000; "><</span><span style="color: #000000; "> img.rows; x </span><span style="color: #000000; ">=</span><span style="color: #000000; "> (</span><span style="color: #000000; ">++</span><span style="color: #000000; ">x</span><span style="color: #000000; "><</span><span style="color: #000000; ">img.cols)</span><span style="color: #000000; ">?</span><span style="color: #000000; "> x : (y</span><span style="color: #000000; ">++</span><span style="color: #000000; ">, </span><span style="color: #000000; ">0</span><span style="color: #000000; ">)) {<br /></span><span style="color: #008080; ">44</span> <span style="color: #000000; ">                Vec3d r(</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 /></span><span style="color: #008080; ">45</span> <span style="color: #000000; "><br /></span><span style="color: #008080; ">46</span> <span style="color: #000000; ">                </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> ideal </span><span style="color: #000000; ">=</span><span style="color: #000000; "> x </span><span style="color: #000000; ">-</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">(kernel.cols </span><span style="color: #000000; ">/</span><span style="color: #000000; "> </span><span style="color: #000000; ">2</span><span style="color: #000000; ">),<br /></span><span style="color: #008080; ">47</span> <span style="color: #000000; ">                    ran_beg </span><span style="color: #000000; ">=</span><span style="color: #000000; "> max(ideal, </span><span style="color: #000000; ">0</span><span style="color: #000000; ">) </span><span style="color: #000000; ">-</span><span style="color: #000000; "> ideal,<br /></span><span style="color: #008080; ">48</span> <span style="color: #000000; ">                    ran_end </span><span style="color: #000000; ">=</span><span style="color: #000000; "> min(ideal </span><span style="color: #000000; ">+</span><span style="color: #000000; "> kernel.cols, img.cols) </span><span style="color: #000000; ">-</span><span style="color: #000000; "> ideal;<br /></span><span style="color: #008080; ">49</span> <span style="color: #000000; "><br /></span><span style="color: #008080; ">50</span> <span style="color: #000000; ">                </span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> i </span><span style="color: #000000; ">=</span><span style="color: #000000; "> ran_beg; i </span><span style="color: #000000; "><</span><span style="color: #000000; "> ran_end; i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">) {<br /></span><span style="color: #008080; ">51</span> <span style="color: #000000; ">                        </span><span style="color: #0000FF; ">double</span><span style="color: #000000; "> weight </span><span style="color: #000000; ">=</span><span style="color: #000000; "> kernel.at</span><span style="color: #000000; "><</span><span style="color: #0000FF; ">double</span><span style="color: #000000; ">></span><span style="color: #000000; ">(</span><span style="color: #000000; ">0</span><span style="color: #000000; ">, i);<br /></span><span style="color: #008080; ">52</span> <span style="color: #000000; ">                        Vec3b pixel </span><span style="color: #000000; ">=</span><span style="color: #000000; "> img.at</span><span style="color: #000000; "><</span><span style="color: #000000; ">Vec3b</span><span style="color: #000000; ">></span><span style="color: #000000; ">(y, ideal </span><span style="color: #000000; ">+</span><span style="color: #000000; "> i);<br /></span><span style="color: #008080; ">53</span> <span style="color: #000000; "><br /></span><span style="color: #008080; ">54</span> <span style="color: #000000; ">                        r[</span><span style="color: #000000; ">0</span><span style="color: #000000; ">] </span><span style="color: #000000; ">+=</span><span style="color: #000000; "> pixel[</span><span style="color: #000000; ">0</span><span style="color: #000000; ">] </span><span style="color: #000000; ">*</span><span style="color: #000000; "> weight;<br /></span><span style="color: #008080; ">55</span> <span style="color: #000000; ">                        r[</span><span style="color: #000000; ">1</span><span style="color: #000000; ">] </span><span style="color: #000000; ">+=</span><span style="color: #000000; "> pixel[</span><span style="color: #000000; ">1</span><span style="color: #000000; ">] </span><span style="color: #000000; ">*</span><span style="color: #000000; "> weight;<br /></span><span style="color: #008080; ">56</span> <span style="color: #000000; ">                        r[</span><span style="color: #000000; ">2</span><span style="color: #000000; ">] </span><span style="color: #000000; ">+=</span><span style="color: #000000; "> pixel[</span><span style="color: #000000; ">2</span><span style="color: #000000; ">] </span><span style="color: #000000; ">*</span><span style="color: #000000; "> weight;<br /></span><span style="color: #008080; ">57</span> <span style="color: #000000; ">                }<br /></span><span style="color: #008080; ">58</span> <span style="color: #000000; "><br /></span><span style="color: #008080; ">59</span> <span style="color: #000000; ">                </span><span style="color: #0000FF; ">double</span><span style="color: #000000; "> coef </span><span style="color: #000000; ">=</span><span style="color: #000000; "> kernel.at</span><span style="color: #000000; "><</span><span style="color: #0000FF; ">double</span><span style="color: #000000; ">></span><span style="color: #000000; ">(</span><span style="color: #000000; ">1</span><span style="color: #000000; ">, ran_end </span><span style="color: #000000; ">-</span><span style="color: #000000; "> </span><span style="color: #000000; ">1</span><span style="color: #000000; ">);<br /></span><span style="color: #008080; ">60</span> <span style="color: #000000; ">                </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(ran_beg) coef </span><span style="color: #000000; ">-=</span><span style="color: #000000; "> kernel.at</span><span style="color: #000000; "><</span><span style="color: #0000FF; ">double</span><span style="color: #000000; ">></span><span style="color: #000000; ">(</span><span style="color: #000000; ">1</span><span style="color: #000000; ">, ran_beg </span><span style="color: #000000; ">-</span><span style="color: #000000; "> </span><span style="color: #000000; ">1</span><span style="color: #000000; ">);<br /></span><span style="color: #008080; ">61</span> <span style="color: #000000; "><br /></span><span style="color: #008080; ">62</span> <span style="color: #000000; ">                output.at</span><span style="color: #000000; "><</span><span style="color: #000000; ">Vec3b</span><span style="color: #000000; ">></span><span style="color: #000000; ">(t</span><span style="color: #000000; ">?</span><span style="color: #000000; ">x:y, t</span><span style="color: #000000; ">?</span><span style="color: #000000; ">y:x) </span><span style="color: #000000; ">=</span><span style="color: #000000; "> Vec3b(<br /></span><span style="color: #008080; ">63</span> <span style="color: #000000; ">                        saturate_cast</span><span style="color: #000000; "><</span><span style="color: #000000; ">uchar</span><span style="color: #000000; ">></span><span style="color: #000000; ">(r[</span><span style="color: #000000; ">0</span><span style="color: #000000; ">]</span><span style="color: #000000; ">/</span><span style="color: #000000; ">coef),<br /></span><span style="color: #008080; ">64</span> <span style="color: #000000; ">                        saturate_cast</span><span style="color: #000000; "><</span><span style="color: #000000; ">uchar</span><span style="color: #000000; ">></span><span style="color: #000000; ">(r[</span><span style="color: #000000; ">1</span><span style="color: #000000; ">]</span><span style="color: #000000; ">/</span><span style="color: #000000; ">coef),<br /></span><span style="color: #008080; ">65</span> <span style="color: #000000; ">                        saturate_cast</span><span style="color: #000000; "><</span><span style="color: #000000; ">uchar</span><span style="color: #000000; ">></span><span style="color: #000000; ">(r[</span><span style="color: #000000; ">2</span><span style="color: #000000; ">]</span><span style="color: #000000; ">/</span><span style="color: #000000; ">coef));<br /></span><span style="color: #008080; ">66</span> <span style="color: #000000; ">        }<br /></span><span style="color: #008080; ">67</span> <span style="color: #000000; ">}<br /></span><span style="color: #008080; ">68</span> <span style="color: #000000; "><br /></span><span style="color: #008080; ">69</span> <span style="color: #000000; "><br /></span><span style="color: #008080; ">70</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> main()<br /></span><span style="color: #008080; ">71</span> <span style="color: #000000; ">{<br /></span><span style="color: #008080; ">72</span> <span style="color: #000000; ">        namedWindow(title, WINDOW_AUTOSIZE);<br /></span><span style="color: #008080; ">73</span> <span style="color: #000000; "><br /></span><span style="color: #008080; ">74</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">const</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> r </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">10</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; ">75</span> <span style="color: #000000; "><br /></span><span style="color: #008080; ">76</span> <span style="color: #000000; ">        Mat img </span><span style="color: #000000; ">=</span><span style="color: #000000; "> imread(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">ai-sample.jpg</span><span style="color: #000000; ">"</span><span style="color: #000000; ">),<br /></span><span style="color: #008080; ">77</span> <span style="color: #000000; ">            kernel </span><span style="color: #000000; ">=</span><span style="color: #000000; "> kernelMatrix(r, (r </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; "> </span><span style="color: #000000; ">0.3</span><span style="color: #000000; "> </span><span style="color: #000000; ">+</span><span style="color: #000000; "> </span><span style="color: #000000; ">0.8</span><span style="color: #000000; ">);<br /></span><span style="color: #008080; ">78</span> <span style="color: #000000; "><br /></span><span style="color: #008080; ">79</span> <span style="color: #000000; ">        Mat product_v </span><span style="color: #000000; ">=</span><span style="color: #000000; "> Mat(img.cols, img.rows, img.type());<br /></span><span style="color: #008080; ">80</span> <span style="color: #000000; ">        Mat product_h </span><span style="color: #000000; ">=</span><span style="color: #000000; "> Mat(img.rows, img.cols, img.type());<br /></span><span style="color: #008080; ">81</span> <span style="color: #000000; "><br /></span><span style="color: #008080; ">82</span> <span style="color: #000000; ">        convolution(img, kernel, product_v);<br /></span><span style="color: #008080; ">83</span> <span style="color: #000000; ">        convolution(product_v, kernel, product_h);<br /></span><span style="color: #008080; ">84</span> <span style="color: #000000; "><br /></span><span style="color: #008080; ">85</span> <span style="color: #000000; ">        imshow(title, product_h);<br /></span><span style="color: #008080; ">86</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">(; waitKey(</span><span style="color: #000000; ">0</span><span style="color: #000000; ">) </span><span style="color: #000000; ">></span><span style="color: #000000; "> </span><span style="color: #000000; ">0</span><span style="color: #000000; ">;);<br /></span><span style="color: #008080; ">87</span> <span style="color: #000000; "><br /></span><span style="color: #008080; ">88</span> <span style="color: #000000; ">        destroyWindow(title);<br /></span><span style="color: #008080; ">89</span> <span style="color: #000000; ">}</span></div><p><br /></p><img src="http://upload-images.jianshu.io/upload_images/610338-6d8a7ba9a3985876.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="娓叉煋鏁堟灉鍥? data-original-src="http://upload-images.jianshu.io/upload_images/610338-6d8a7ba9a3985876.png" /><br /><div imagebubble"=""><div>娓叉煋鏁堟灉鍥?/div> </div> </div></div><img src ="http://m.shnenglu.com/Shihira/aggbug/211542.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/Shihira/" target="_blank">Shihira</a> 2015-08-12 00:35 <a href="http://m.shnenglu.com/Shihira/archive/2015/08/12/211542.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>嫻偣鏁扮畝浠?/title><link>http://m.shnenglu.com/Shihira/archive/2015/01/02/209380.html</link><dc:creator>Shihira</dc:creator><author>Shihira</author><pubDate>Fri, 02 Jan 2015 06:38:00 GMT</pubDate><guid>http://m.shnenglu.com/Shihira/archive/2015/01/02/209380.html</guid><wfw:comment>http://m.shnenglu.com/Shihira/comments/209380.html</wfw:comment><comments>http://m.shnenglu.com/Shihira/archive/2015/01/02/209380.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/Shihira/comments/commentRss/209380.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/Shihira/services/trackbacks/209380.html</trackback:ping><description><![CDATA[<div> <div> <div> <div> <h2>鍐呭瓨涓殑鍌ㄥ瓨褰㈠紡(IEEE-745)</h2> <pre style="font-size: 0.85em; font-family: Consolas,Inconsolata,Courier,monospace;font-size: 1em; line-height: 1.2em;margin: 1.2em 0px;"><code style="font-size: 0.85em; font-family: Consolas,Inconsolata,Courier,monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; border: 1px solid #eaeaea; background-color: #f8f8f8; border-radius: 3px; display: inline;white-space: pre; overflow: auto; border-radius: 3px; border: 1px solid #cccccc; padding: 0.5em 0.7em; display: block ! important;">Address 3        2        1        0 <br />Content SEEEEEEE EBBBBBBB BBBBBBBB BBBBBBBB </code></pre> <p style="margin: 1.2em 0px ! important;">鍏朵腑鐨勫瓧姣嶅垎鍒唬琛?</p> <ul style="margin: 1.2em 0px;padding-left: 2em;"> <li style="margin: 0.5em 0px;">S(Significand):1 - 姝h礋鍙?img alt="(-1)^S" name="4f943fc1-46c0-42b8-852f-2ab52da5d07b" src="https://www.evernote.com/shard/s375/sh/a4e4ed3a-af3e-4855-90ba-56daef650054/219cbab4fc64ceb3acdccab81292dfba/res/4f943fc1-46c0-42b8-852f-2ab52da5d07b.png?resizeSmall&width=832" /></li> <li style="margin: 0.5em 0px;">E(Exponent):8 - 鎸囨暟閮ㄥ垎</li> <li style="margin: 0.5em 0px;">B(Base):23 - 搴曟暟閮ㄥ垎</li> </ul> <p style="margin: 1.2em 0px ! important;">榪欐牱, 鏁翠釜嫻偣鏁拌〃紺鴻搗鏉ュ氨鏄?</p> <p style="margin: 1.2em 0px ! important;"><img alt="(-1)^S \times 1.BBBBBBBBBBBBBBBBBBBBBBB \times 2 ^{EEEEEEEE - 01111111}" name="d5a7553b-beea-4ec5-be84-38434cb8f811" src="https://www.evernote.com/shard/s375/sh/a4e4ed3a-af3e-4855-90ba-56daef650054/219cbab4fc64ceb3acdccab81292dfba/res/d5a7553b-beea-4ec5-be84-38434cb8f811.png?resizeSmall&width=832" /></p> <h2>N榪涘埗鐨勫皬鏁?/h2> <p style="margin: 1.2em 0px ! important;">鐪嬪埌10榪涘埗鐨勫皬鏁? 灝忔暟鐐規槸鐢ㄦ潵鍒嗛殧鎸囨暟姝h礋浣嶇殑:</p> <p style="margin: 1.2em 0px ! important;"><img alt="123.456" name="f19cf11c-9bbd-4579-ab0d-38aca2c03bf5" src="https://www.evernote.com/shard/s375/sh/a4e4ed3a-af3e-4855-90ba-56daef650054/219cbab4fc64ceb3acdccab81292dfba/res/f19cf11c-9bbd-4579-ab0d-38aca2c03bf5.png?resizeSmall&width=832" /><br clear="none" /> <img alt="= 1 \times 10^2 + 2 \times 10^1 + 3 \times 10^0 + 4 \times 10^{-1} + 5 \times 10^{-2} + 6 \times 10^{-3}" name="5c8f2017-66c5-4e8c-b3f4-c5d7af5bd422" src="https://www.evernote.com/shard/s375/sh/a4e4ed3a-af3e-4855-90ba-56daef650054/219cbab4fc64ceb3acdccab81292dfba/res/5c8f2017-66c5-4e8c-b3f4-c5d7af5bd422.png?resizeSmall&width=832" /></p> <p style="margin: 1.2em 0px ! important;">鎺ㄥ箍鍒癗榪涘埗, 褰㈠紡鏄畬鍏ㄧ浉鍚岀殑, 榪欓噷鐢ㄤ簩榪涘埗鍋氫竴涓緥瀛?</p> <p style="margin: 1.2em 0px ! important;"><img alt="(101.0101)_2" name="9b964ef0-2b66-47a3-bf3b-6034f1399e36" src="https://www.evernote.com/shard/s375/sh/a4e4ed3a-af3e-4855-90ba-56daef650054/219cbab4fc64ceb3acdccab81292dfba/res/9b964ef0-2b66-47a3-bf3b-6034f1399e36.png?resizeSmall&width=832" /><br clear="none" /> <img alt="= 2^2 + 2^0 + 2^{-2} + 2^{-4}" name="6f79a2c5-604c-4044-8ed8-79e195e19324" src="https://www.evernote.com/shard/s375/sh/a4e4ed3a-af3e-4855-90ba-56daef650054/219cbab4fc64ceb3acdccab81292dfba/res/6f79a2c5-604c-4044-8ed8-79e195e19324.png?resizeSmall&width=832" /><br clear="none" /> <img alt="= 4+1+{1 \over 4}+{1 \over 16}" name="b2eea789-a281-42f0-a308-33a9a316d321" src="https://www.evernote.com/shard/s375/sh/a4e4ed3a-af3e-4855-90ba-56daef650054/219cbab4fc64ceb3acdccab81292dfba/res/b2eea789-a281-42f0-a308-33a9a316d321.png?resizeSmall&width=832" /><br clear="none" /> <img alt="= 5.3125" name="06cb8f45-bd55-4d89-9829-d104d04675e7" src="https://www.evernote.com/shard/s375/sh/a4e4ed3a-af3e-4855-90ba-56daef650054/219cbab4fc64ceb3acdccab81292dfba/res/06cb8f45-bd55-4d89-9829-d104d04675e7.png?resizeSmall&width=832" /></p> <h2>鏋勯犱竴涓誕鐐規暟</h2> <p style="margin: 1.2em 0px ! important;">浠?2.625涓轟緥瀛? 棣栧厛鎴戜滑鎺ㄧ畻涓涓嬪畠鐨勪簩榪涘埗褰㈠紡鏄粈涔? 濡傛垜浠墍鐭? 鏁存暟閮ㄥ垎鍜屽皬鏁伴儴鍒嗙殑浣嶇疆鏄亽瀹氫笉鍙樼殑, 鍥犱負瀹冧滑鏄惁灝忎簬1榪欎釜鎬ц川, 鏃犺鍦ㄤ粈涔堣繘鍒朵箣涓嬮兘涓嶄細鏀瑰彉. 棣栧厛綆楁暣鏁伴儴鍒?</p> <p style="margin: 1.2em 0px ! important;"><img alt="12 \div 2 = 6 \cdots 0" name="92f68c9f-f8e4-4fa5-aace-7c49f7400ef3" src="https://www.evernote.com/shard/s375/sh/a4e4ed3a-af3e-4855-90ba-56daef650054/219cbab4fc64ceb3acdccab81292dfba/res/92f68c9f-f8e4-4fa5-aace-7c49f7400ef3.png?resizeSmall&width=832" /><br clear="none" /> <img alt="6 \div 2 = 3 \cdots 0" name="0b788b1d-fdc0-4e0a-ab78-5488502ad8b1" src="https://www.evernote.com/shard/s375/sh/a4e4ed3a-af3e-4855-90ba-56daef650054/219cbab4fc64ceb3acdccab81292dfba/res/0b788b1d-fdc0-4e0a-ab78-5488502ad8b1.png?resizeSmall&width=832" /><br clear="none" /> <img alt="3 \div 2 = 1 \cdots 1" name="f7f6f374-94ef-4bdf-b6f9-431e3d0ee838" src="https://www.evernote.com/shard/s375/sh/a4e4ed3a-af3e-4855-90ba-56daef650054/219cbab4fc64ceb3acdccab81292dfba/res/f7f6f374-94ef-4bdf-b6f9-431e3d0ee838.png?resizeSmall&width=832" /><br clear="none" /> <img alt="1 \div 2 = 0 \cdots 1" name="1e4cda93-2816-416a-ab2d-b51d66501d4a" src="https://www.evernote.com/shard/s375/sh/a4e4ed3a-af3e-4855-90ba-56daef650054/219cbab4fc64ceb3acdccab81292dfba/res/1e4cda93-2816-416a-ab2d-b51d66501d4a.png?resizeSmall&width=832" /><br clear="none" /> <img alt="\therefore \ (12)_10 = (1100)_2" name="9463af4e-69bf-4588-b077-bc01dcf9a233" src="https://www.evernote.com/shard/s375/sh/a4e4ed3a-af3e-4855-90ba-56daef650054/219cbab4fc64ceb3acdccab81292dfba/res/9463af4e-69bf-4588-b077-bc01dcf9a233.png?resizeSmall&width=832" /></p> <p style="margin: 1.2em 0px ! important;">灝忔暟閮ㄥ垎(涓嶇煡閬撴槸鍚︽敞鎰忓埌, 灝忔暟閮ㄥ垎鍙湁鏄?^n鐨勫拰鎵嶆湁鍙兘琚〃紺烘垚涓嶅驚鐜皬鏁? 璇稿0.7, 0.3閮芥槸浜岃繘鍒剁殑鏃犻檺寰幆灝忔暟):</p> <p style="margin: 1.2em 0px ! important;"><img alt="0.625 \times 2 = 1 + 0.25" name="65a180e0-735d-45ba-b563-f3b71456843d" src="https://www.evernote.com/shard/s375/sh/a4e4ed3a-af3e-4855-90ba-56daef650054/219cbab4fc64ceb3acdccab81292dfba/res/65a180e0-735d-45ba-b563-f3b71456843d.png?resizeSmall&width=832" /><br clear="none" /> <img alt="0.25 \times 2 = 0 + 0.5" name="fde2d47d-b280-4846-b995-4a9d8ed31dc3" src="https://www.evernote.com/shard/s375/sh/a4e4ed3a-af3e-4855-90ba-56daef650054/219cbab4fc64ceb3acdccab81292dfba/res/fde2d47d-b280-4846-b995-4a9d8ed31dc3.png?resizeSmall&width=832" /><br clear="none" /> <img alt="0.5 \times 2 = 1" name="80991657-d983-4356-89d3-5513077712c7" src="https://www.evernote.com/shard/s375/sh/a4e4ed3a-af3e-4855-90ba-56daef650054/219cbab4fc64ceb3acdccab81292dfba/res/80991657-d983-4356-89d3-5513077712c7.png?resizeSmall&width=832" /><br clear="none" /> <img alt="\therefore \ (0.625)_{10} = (0.101)_2" name="8d4c77f3-67ba-4e1c-bcaa-607afcc6e14a" src="https://www.evernote.com/shard/s375/sh/a4e4ed3a-af3e-4855-90ba-56daef650054/219cbab4fc64ceb3acdccab81292dfba/res/8d4c77f3-67ba-4e1c-bcaa-607afcc6e14a.png?resizeSmall&width=832" /></p> <p style="margin: 1.2em 0px ! important;">榪欐牱, 鎴戜滑寰楀埌浜嗕竴涓簩榪涗綅鐨勫皬鏁?100.101, 騫朵笖鍖栨垚IEEE-745鏍囧噯褰㈠紡:</p> <p style="margin: 1.2em 0px ! important;"><img alt="1100.101 = 1.100101 \times 2^{00000011 + 01111111 - 01111111}" name="aaf4f83b-de41-415c-a845-766387dbd563" src="https://www.evernote.com/shard/s375/sh/a4e4ed3a-af3e-4855-90ba-56daef650054/219cbab4fc64ceb3acdccab81292dfba/res/aaf4f83b-de41-415c-a845-766387dbd563.png?resizeSmall&width=832" /></p> <pre style="font-size: 0.85em; font-family: Consolas,Inconsolata,Courier,monospace;font-size: 1em; line-height: 1.2em;margin: 1.2em 0px;"><code style="font-size: 0.85em; font-family: Consolas,Inconsolata,Courier,monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; border: 1px solid #eaeaea; background-color: #f8f8f8; border-radius: 3px; display: inline;white-space: pre; overflow: auto; border-radius: 3px; border: 1px solid #cccccc; padding: 0.5em 0.7em; display: block ! important;">Address 3        2        1        0 <br />Content SEEEEEEE EBBBBBBB BBBBBBBB BBBBBBBB <br />Value   01000001 01001010 00000000 00000000 <br />Hex           41       4A       00       00 </code></pre> <p style="margin: 1.2em 0px ! important;">鐜板湪鎴戜滑寰楀埌浜嗕竴涓暣鏁?x414A0000, 鎶婂畠杈撳嚭鍑烘潵鐪嬬湅鏄灝?</p> <pre style="font-size: 0.85em; font-family: Consolas,Inconsolata,Courier,monospace;font-size: 1em; line-height: 1.2em;margin: 1.2em 0px;"><code style="font-size: 0.85em; font-family: Consolas,Inconsolata,Courier,monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; border: 1px solid #eaeaea; background-color: #f8f8f8; border-radius: 3px; display: inline;white-space: pre; overflow: auto; border-radius: 3px; border: 1px solid #cccccc; padding: 0.5em 0.7em; display: block ! important;">$ cat test.c <br />#include <stdio.h> <br />int main() <br />{ <br />   union { <br />      unsigned long u; <br />      float f; <br />   } u; <br />   u.u = 0x414a0000; <br />   printf("%f\n", u.f); <br />   return 0;<br />}<br /><br />$ ./test <br />12.625000 </code></pre> <div title="MDH:PGRpdj4jIyDlhoXlrZjkuK3nmoTlgqjlrZjlvaLlvI8oSUVFRS03NDUpPGJyPjxicj5gYGA8YnI+ QWRkcmVzcyAzJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDImbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgMSZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAwPGJyPkNvbnRlbnQgU0VFRUVFRUUgRUJCQkJCQkIg QkJCQkJCQkIgQkJCQkJCQkI8YnI+YGBgPGJyPjxicj7lhbbkuK3nmoTlrZfmr43liIbliKvku6Po oag6PGJyPjxicj4tIFMoU2lnbmlmaWNhbmQpOjEgLSDmraPotJ/lj7ckKC0xKV5TJDxicj4tIEUo RXhwb25lbnQpOjggLSDmjIfmlbDpg6jliIY8YnI+LSBCKEJhc2UpOjIzIC0g5bqV5pWw6YOo5YiG PGJyPjxicj7ov5nmoLcsIOaVtOS4qua1rueCueaVsOihqOekuui1t+adpeWwseaYrzo8YnI+PGJy PiQoLTEpXlMgXHRpbWVzIDEuQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkIgXHRpbWVzIDIgXntFRUVF RUVFRSAtIDAxMTExMTExfSQ8YnI+PGJyPiMjIE7ov5vliLbnmoTlsI/mlbA8YnI+PGJyPueci+WI sDEw6L+b5Yi255qE5bCP5pWwLCDlsI/mlbDngrnmmK/nlKjmnaXliIbpmpTmjIfmlbDmraPotJ/k vY3nmoQ6PGJyPjxicj4kMTIzLjQ1NiQ8YnI+JD0gMSBcdGltZXMgMTBeMiArIDIgXHRpbWVzIDEw XjEgKyAzIFx0aW1lcyAxMF4wICsgNCBcdGltZXMgMTBeey0xfSArIDUgXHRpbWVzIDEwXnstMn0g KyA2IFx0aW1lcyAxMF57LTN9JDxicj48YnI+5o6o5bm/5YiwTui/m+WItiwg5b2i5byP5piv5a6M 5YWo55u45ZCM55qELCDov5nph4znlKjkuozov5vliLblgZrkuIDkuKrkvovlrZA6PGJyPjxicj4k KDEwMS4wMTAxKV8yJDxicj4kPSAyXjIgKyAyXjAgKyAyXnstMn0gKyAyXnstNH0kPGJyPiQ9IDQr MSt7MSBcb3ZlciA0fSt7MSBcb3ZlciAxNn0kPGJyPiQ9IDUuMzEyNSQ8YnI+PGJyPiMjIOaehOmA oOS4gOS4qua1rueCueaVsDxicj48YnI+5LulMTIuNjI15Li65L6L5a2QLiDpppblhYjmiJHku6zm jqjnrpfkuIDkuIvlroPnmoTkuozov5vliLblvaLlvI/mmK/ku4DkuYguIOWmguaIkeS7rOaJgOef pSwg5pW05pWw6YOo5YiG5ZKM5bCP5pWw6YOo5YiG55qE5L2N572u5piv5oGS5a6a5LiN5Y+Y55qE LCDlm6DkuLrlroPku6zmmK/lkKblsI/kuo4x6L+Z5Liq5oCn6LSoLCDml6DorrrlnKjku4DkuYjo v5vliLbkuYvkuIvpg73kuI3kvJrmlLnlj5guIOmmluWFiOeul+aVtOaVsOmDqOWIhjo8YnI+PGJy PiQxMiBcZGl2IDIgPSA2IFxjZG90cyAwJDxicj4kNiBcZGl2IDIgPSAzIFxjZG90cyAwJDxicj4k MyBcZGl2IDIgPSAxIFxjZG90cyAxJDxicj4kMSBcZGl2IDIgPSAwIFxjZG90cyAxJDxicj4kXHRo ZXJlZm9yZSBcICgxMilfMTAgPSAoMTEwMClfMiQ8YnI+PGJyPuWwj+aVsOmDqOWIhijkuI3nn6Xp gZPmmK/lkKbms6jmhI/liLAsIOWwj+aVsOmDqOWIhuWPquacieaYrzJebueahOWSjOaJjeacieWP r+iDveiiq+ihqOekuuaIkOS4jeW+queOr+Wwj+aVsC4g6K+45aaCMC43LCAwLjPpg73mmK/kuozo v5vliLbnmoTml6DpmZDlvqrnjq/lsI/mlbApOjxicj48YnI+JDAuNjI1IFx0aW1lcyAyID0gMSAr IDAuMjUkPGJyPiQwLjI1IFx0aW1lcyAyID0gMCArIDAuNSQ8YnI+JDAuNSBcdGltZXMgMiA9IDEk PGJyPiRcdGhlcmVmb3JlIFwgKDAuNjI1KV97MTB9ID0gKDAuMTAxKV8yJDxicj48YnI+6L+Z5qC3 LCDmiJHku6zlvpfliLDkuobkuIDkuKrkuozov5vkvY3nmoTlsI/mlbAxMTAwLjEwMSwg5bm25LiU 5YyW5oiQSUVFRS03NDXmoIflh4blvaLlvI86PGJyPjxicj4kMTEwMC4xMDEgPSAxLjEwMDEwMSBc dGltZXMgMl57MDAwMDAwMTEgKyAwMTExMTExMSAtIDAxMTExMTExfSQ8YnI+PGJyPmBgYDxicj5B ZGRyZXNzIDMmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgMiZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAxJm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDA8YnI+Q29udGVudCBTRUVFRUVFRSBFQkJCQkJCQiBC QkJCQkJCQiBCQkJCQkJCQjxicj5WYWx1ZSZuYnNwOyZuYnNwOyAwMTAwMDAwMSAwMTAwMTAxMCAw MDAwMDAwMCAwMDAwMDAwMDxicj5IZXgmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgNDEmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsgNEEmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgMDAmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgMDA8YnI+YGBgPGJyPjxicj7njrDlnKjmiJHk u6zlvpfliLDkuobkuIDkuKrmlbTmlbAweDQxNEEwMDAwLCDmiorlroPovpPlh7rlh7rmnaXnnIvn nIvmmK/lpJrlsJE6PGJyPjxicj5gYGA8YnI+JCBjYXQgdGVzdC5jPGJyPiNpbmNsdWRlICZsdDtz dGRpby5oJmd0Ozxicj48YnI+aW50IG1haW4oKSB7PGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyB1bmlvbiB7PGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB1bnNpZ25lZCBsb25nIHU7 PGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyBmbG9hdCBmOzxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsgfSB1Ozxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsgdS51ID0gMHg0MTRhMDAwMDs8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7IHByaW50ZigiJWZcbiIsIHUuZik7PGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyByZXR1cm4gMDs8YnI+fTxicj48YnI+JCAuL3Rlc3Q8YnI+ MTIuNjI1MDAwPGJyPmBgYDxicj48L2Rpdj4=" style="height:0;width:0;max-height:0;max-width:0;overflow:hidden;font-size:0em;padding:0;margin:0;">​</div> </div> </div> </div> </div><img src ="http://m.shnenglu.com/Shihira/aggbug/209380.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/Shihira/" target="_blank">Shihira</a> 2015-01-02 14:38 <a href="http://m.shnenglu.com/Shihira/archive/2015/01/02/209380.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>TypeGame: 涓篤im鍔犱笂鎵撳瓧緇冧範鍔熻兘http://m.shnenglu.com/Shihira/archive/2014/08/16/typegame-vim.htmlShihiraShihiraSat, 16 Aug 2014 13:11:00 GMThttp://m.shnenglu.com/Shihira/archive/2014/08/16/typegame-vim.htmlhttp://m.shnenglu.com/Shihira/comments/208039.htmlhttp://m.shnenglu.com/Shihira/archive/2014/08/16/typegame-vim.html#Feedback6http://m.shnenglu.com/Shihira/comments/commentRss/208039.htmlhttp://m.shnenglu.com/Shihira/services/trackbacks/208039.html闃呰鍏ㄦ枃

Shihira 2014-08-16 21:11 鍙戣〃璇勮
]]>
Windows API 瀛楃緙栫爜杞崲浠ュ強涓浜涜В閲婂拰蹇冨緱http://m.shnenglu.com/Shihira/archive/2013/10/28/200124.htmlShihiraShihiraMon, 28 Oct 2013 14:49:00 GMThttp://m.shnenglu.com/Shihira/archive/2013/10/28/200124.htmlhttp://m.shnenglu.com/Shihira/comments/200124.htmlhttp://m.shnenglu.com/Shihira/archive/2013/10/28/200124.html#Feedback8http://m.shnenglu.com/Shihira/comments/commentRss/200124.htmlhttp://m.shnenglu.com/Shihira/services/trackbacks/200124.html

鎴戝湪瑙e喅涔辯爜涓婇潰瀹為檯璧頒簡涓嶅皯寮礬錛屽仛浜嗗緢澶氬疄楠岋紝鏌ヤ簡寰堝璧勬枡銆傚湪榪欓噷鍋氫笅絎旇錛屽笇鏈涘悗鏉ヨ呭彲浠ユ槑鐧斤紝灝戣蛋浜涘集璺?/span>

浠庢渶鐔熸倝鐨勪袱縐嶅瓧絎︾紪鐮佽璧?br />

闄や簡涓浜涙棫鐨勩佹病鏈夎冭檻鍒板吋瀹規х殑緗戦〉榪樺湪鐢╣bk鍋氱紪鐮佸錛屽ぇ閮ㄥ垎鐨勭綉欏甸兘宸茬粡鐢╱tf-8鍋氱紪鐮佷簡銆備絾鏄渶浠や漢澶寸柤鐨勬槸錛寃indows鐨勬帶鍒跺彴鏄緢涓嶅ソ鏄劇ずutf-8鐨勩傛湁鏄庡悰涓烘垜澶++鍐欎簡涓や釜鍑芥暟錛屾槸姝g‘鐨勩佸ソ鐢ㄧ殑錛堥櫎浜嗙敤std::string鍋氳繑鍥炲艱鎴戠瓑鏁堢巼鍏氭湁鐐硅寰椾笉鐖戒箣澶?#8230;…榪樻槸鎸烘柟渚跨殑錛?/strike>.

#include <string>
#include 
<windows.h>
using std::string;

//gbk 杞?nbsp;utf8
string GBKToUTF8(const string& strGBK)
{
    
string strOutUTF8 = "";
    WCHAR 
* str1;
    
int n = MultiByteToWideChar(CP_ACP, 0, strGBK.c_str(), -1, NULL, 0);
    str1 
= new WCHAR[n];
    MultiByteToWideChar(CP_ACP, 
0, strGBK.c_str(), -1, str1, n);
    n 
= WideCharToMultiByte(CP_UTF8, 0, str1, -1, NULL, 0, NULL, NULL);
    
char * str2 = new char[n];
    WideCharToMultiByte(CP_UTF8, 
0, str1, -1, str2, n, NULL, NULL);
    strOutUTF8 
= str2;
    delete[]str1;
    str1 
= NULL;
    delete[]str2;
    str2 
= NULL;
    
return strOutUTF8;
}

//utf-8 杞?nbsp;gbk
string UTF8ToGBK(const string& strUTF8)
{
    
int len = MultiByteToWideChar(CP_UTF8, 0, strUTF8.c_str(), -1, NULL, 0);
    unsigned 
short * wszGBK = new unsigned short[len + 1];
    memset(wszGBK, 
0, len * 2 + 2);
    MultiByteToWideChar(CP_UTF8, 
0, (LPCTSTR)strUTF8.c_str(), -1, wszGBK, len);

    len 
= WideCharToMultiByte(CP_ACP, 0, wszGBK, -1, NULL, 0, NULL, NULL);
    
char *szGBK = new char[len + 1];
    memset(szGBK, 
0, len + 1);
    WideCharToMultiByte(CP_ACP,
0, wszGBK, -1, szGBK, len, NULL, NULL);
    
//strUTF8 = szGBK;
    std::string strTemp(szGBK);
    delete[]szGBK;
    delete[]wszGBK;
    
return strTemp;
}

榪欑帺鎰忓効涓嶈法騫沖彴錛屽洜涓哄畠鐢ㄥ埌浜唚indows api銆傛垜涔嬫墍浠ユ妸瀹冩斁鍒拌法騫沖彴緙栫▼涓婇潰鏉ワ紝鏄洜涓哄瓧絎︾紪鐮佽繖涓滆タ鍙湁鍒拌法騫沖彴鐨勬椂鍊欐墠鏄懼緱鍧戠埞銆?/span>


鎺ョ潃鎴戞槸涓嶆槸瑕佷粙緇嶉偅淇╁嚱鏁頒竴涓嬶紵

int MultiByteToWideChar(
  _In_       UINT CodePage, 
/*浠g爜欏墊槸Windows涓嬪瓧絎︾紪鐮佺殑鍙硶錛実bk鏄?36錛寀tf-8鏄?5001錛孋P_ACP鏄疉NSI*/
  _In_       DWORD dwFlags, 
/*閫夐」鏍囧織錛岃漿鎹㈢被鍨嬶紝璁?灝辮浜?/span>*/
  _In_       LPCSTR lpMultiByteStr, 
/*澶氬瓧鑺傚瓧絎︿覆*/
  _In_       
int cbMultiByte, /*瀛楃涓茶澶勭悊鐨勯暱搴︼紝濡傛灉鏄?1鍑芥暟灝變細澶勭悊鏁翠釜瀛楃涓?/span>*/
  _Out_opt_  LPWSTR lpWideCharStr, 
/*杈撳嚭鐨勫瀛楃涓茬紦瀛橈紝濡傛灉涓虹┖灝辮繑鍥為渶瑕佺殑瀹藉瓧絎︿覆闀垮害*/
  _In_       
int cchWideChar /*瀹藉瓧絎︿覆緙撳瓨鐨勯暱搴︼紝褰撶劧濡傛灉瀹藉瓧絎︿覆涓虹┖錛岃繖涓0灝卞彲浠ヤ簡*/
);

int WideCharToMultiByte(
  _In_       UINT CodePage,
  _In_       DWORD dwFlags,
  _In_       LPCWSTR lpWideCharStr,
  _In_       
int cchWideChar,
  _Out_opt_  LPSTR lpMultiByteStr,
  _In_       
int cbMultiByte, /*鍓嶉潰鐨勫熀鏈笌MultiByteToWideChar閮界浉鍚岋紝灝變笉瑙i噴浜?/span>*/
  _In_opt_   LPCSTR lpDefaultChar, 
/*濉?鍗沖彲*/
  _Out_opt_  LPBOOL lpUsedDefaultChar 
/*濉?鍗沖彲*/
);

榪欎袱涓嚱鏁板垎鍒槸灝嗗瀛楄妭瀛楃涓茶漿鎹負瀹藉瓧絎﹀瓧絎︿覆 鍜?灝嗗瀛楃瀛楃涓茶漿鎹負澶氬瓧鑺傚瓧絎︿覆錛堝湪姝ゅ鏅曞掔殑绔ラ瀷浠垜娌℃湁瀵逛笉璧蜂綘浠?#8230;…鏄疢$閭e浼欏涓嶈搗浣犱滑錛夈傛垜鏃╁氨璇磋繃Windows API 鐨勭晫闈笉鍙嬪ソ錛岃繖涔堝涓嶇煡閬撳共鍢涘悧鐢ㄧ殑鍙傛暟錛屽叏閮ㄥ~0灝卞浜嗐傝鏄痠conv()錛屽畠璨屼技鍙湁4涓弬鏁幫紝榪欐墠鏄ソ鐨勬鏍楓?/span>


瀹藉瓧絎︼紵澶氬瓧鑺傦紵

榪欐槸Windows緇欏畠浠搗鐨勫悕瀛楋紝璁╀漢鎽鎬笉鐫澶磋剳銆?/span>

  • 瀹藉瓧絎︼細灝辨槸Unicode銆傚畠闆鋒墦涓嶅姩鍦扮敤2涓瓧鑺傦紙0x0000 - 0xFFFF錛夛紝琛ㄧず鎵鏈夋垜浠鉤甯歌兘瑙佸埌鐨勫瓧絎︼紝鍏蜂綋鐨勮〃鏍艱錛?a >http://unicode-table.com

  • 澶氬瓧鑺傦細灝辨槸闄や簡Unicode澶?strong style="font-size: 12pt;">鍏朵粬鐨勩傛垜浠啛鎮夌殑gbk, utf-8, big5錛岀粺緇熷綊鍏ュ瀛楄妭銆?/span>

瀹藉瓧絎︿箣鎵浠ュ彨鍋氬瀛楃錛屾槸鍥犱負瀹冩槸涓涓涓鐐圭殑瀛楃銆傞偅浠涔堟槸鐭瓧絎?#8230;…灝辨槸ascii浜嗭紝1涓瓧鑺?涓瓧絎︾粷瀵瑰鐭紝鑰屼笖鍙兘琛ㄧず256涓タ嬈у瓧絎︺傚瀛楃鍛紝鏄?涓瓧鑺?涓瓧絎︺傚涓鐐癸紝浣嗚繕鏄彲浠ヨ瘑鍒埌涓涓瓧絎︽槸鍝噷鐨勩傝屽瀛楄妭鍛紝灝辨槸瀹冨湪璁$畻鏈洪噷琛ㄧず鎴愬涓瓧鑺傦紝浣嗘槸娌℃湁鍔炴硶璇嗗埆閭i噷鍒伴偅閲屾槸涓涓瓧絎︺?/span>

鎴戜笉鍠滄榪欎袱涓嚱鏁扮殑鍛藉悕銆傚鏋滄寜鐓ython鐨勫懡鍚嶏紝MultiByteToWideChar 搴旇鍙?decode(瑙g爜)錛學ideCharToMultiByte 搴旇鍙?encode(緙栫爜)銆?/span>


鎵浠ュ憿錛?/h3>

濡備綘鎵瑙侊紝澶氬瓧鑺傛棤娉曞噯紜瘑鍒瓧絎︾殑闀垮害錛屽鐞嗚搗鏉ュ氨浼氬緢楹葷儲銆傝屽瀛楃澶у鏃跺欒櫧鐒舵瘮澶氬瓧鑺傚鑰楄垂涓鐐圭┖闂達紝浣嗘槸澶勭悊璧鋒潵鏂逛究銆傛瘮濡傛鍒欒〃杈懼紡澶勭悊錛屽紩鎿庢槸鍩轟簬瀛楃鍘誨尮閰嶇殑錛屽瀛楃鍙互涓や釜瀛楄妭涓や釜瀛楄妭璺崇潃鍖歸厤錛岃屽瀛楄妭灝變細鍖歸厤閿欒銆?/span>

姣斿鏈変竴涓瘝“紼嬪簭”=0xB3CCD0F2(gbk)錛屾垜鎯沖尮閰?#8220;緇?/span>”=0xCCD0(gbk)錛屾鍒欏簱浼氭浛鎴戞妸涓棿閭d袱涓瓧鑺傚尮閰嶄簡銆傜敤鍦–閲岀敤wchar_t錛孋++閲岀敤std::wstring錛屾垜浠彲浠ュ緢鍑嗙‘鐨勶紝鏃犻敊璇湴鍖歸厤鍒版垜浠兂瑕佺殑瀛愪覆錛屽洜涓哄紩鎿庡湪榪唬鐨勬椂鍊欐槸閫愬瓧錛堣屼笉鏄愬瓧鑺傦級榪涜姣旇緝鐨勩?/span>

1 >>> str1 = "緇?/span>"
2 >>> str2 = "紼嬪簭"
3 >>> print re.findall(str1, str2)
4 ['\xcc\xd0']
5 >>> print re.findall(str1.decode("gbk"), str2.decode("gbk"))
6 []

鎵浠ュ湪澶勭悊瀛楃涓茬殑鏃跺欙紝浣嗗嚒瑕佸鐞嗕腑鏂囷紝瑕佸厛鎶婄敤鎴風粰鐨勫瓧絎︿覆瑙g爜鎴怳nicode銆傚鐞嗗畬涔嬪悗鏄劇ず鍑烘潵鎴栬呬繚瀛橈紝鍐嶇紪鐮佹垚闇瑕佺殑charset銆?/span>


Appendix

鍦ㄤ笉鍚岀殑鍦版柟鐢ㄤ笉鍚岀殑緙栫爜錛?/em>

  • 緗戠粶鏂囨湰錛堝緗戦〉錛変紶杈撲竴鑸敤utf-8錛屽洜涓烘湁灝戦噺涓枃錛岃屽ぇ閮ㄥ垎鏄嫳鏂囥?/em>
  • 鍦ㄤ繚瀛樹負鏈湴鏂囦歡鐨勬椂鍊欙紝搴旇淇濆瓨涓篣nicode錛屽洜涓烘湰鍦板瓨鍌ㄨ祫婧愪赴瀵岋紝涓斿彲浠ヨ妭鐪佹椂闂達紝瀹炴椂瑙g爜姣曠珶涔熸槸O(N^2)鍟娿?/em>
  • 鏄劇ず鍑烘潵搴旇鐢ㄧ郴緇熺殑緙栫爜錛屼腑鏂嘩indows涓篻bk錛岀箒浣揥indows涓築ig5錛孡inux涓寰嬩負UTF-8銆?/em>
  • 婧愪唬鐮侀噷鐨勫皯閲忎腑鏂囦覆灝介噺鐢?em style="color: #ff6600;">"\x????\x????"鏉ヨ〃紺猴紝濡傛灉鏈夊ぇ閲忎腑鏂囧緩璁敤gettext鎴栬呰祫婧愪箣綾葷殑浠ュ鎸傜殑鏂瑰紡璇誨叆銆?/em>
  • Qt鍐呴儴浣跨敤Unicode錛屾墍浠ョ紪鍐橯t搴旂敤鏃舵樉紺烘枃瀛楃洿鎺ヤ紶閫掑瀛楃涓插嵆鍙?/em>
  • NTFS鐨勬枃浠跺悕銆佽礬寰勯兘鏄敤GBKUTF16LE緙栫爜鐨勶紝鎵浠ュ鏋淲indows涓嬬敤鎴瘋緭鍏ョ殑鏄礬寰勫氨鏃犻渶瑙g爜浜嗐?/em>




Shihira 2013-10-28 22:49 鍙戣〃璇勮
]]>
AGG鍏ラ棬錛堝叓錛?- 娓叉煋http://m.shnenglu.com/Shihira/archive/2012/08/01/185867.htmlShihiraShihiraWed, 01 Aug 2012 12:01:00 GMThttp://m.shnenglu.com/Shihira/archive/2012/08/01/185867.htmlhttp://m.shnenglu.com/Shihira/comments/185867.htmlhttp://m.shnenglu.com/Shihira/archive/2012/08/01/185867.html#Feedback0http://m.shnenglu.com/Shihira/comments/commentRss/185867.htmlhttp://m.shnenglu.com/Shihira/services/trackbacks/185867.html涓銆佸紩璦
璁╂垜浠潵鐪嬩竴鐪嬫覆鏌撳叿浣撶殑嫻佺▼鍥懼惂錛?/div>

涓婇潰鎻愬埌浜嗗嚑涓蹇碉紝鍐嶈В閲婁竴涓嬶細
  • 欏剁偣婧愶紙Vertex Source錛夛細鐢ㄩ《鐐圭殑鏂瑰紡鎻忚堪鐭㈤噺鍥懼艦錛?/li>
  • 鍏夋爡鍖栵紙Resterizer錛夛細瀹冪殑浣滅敤鏄妸欏剁偣婧愭墍鎻忕粯鐨勫浘褰笌鍍忕礌瀵瑰簲璧鋒潵錛屽彲浠ヨ綾諱技浜嶱hotoshop涓婄殑鐭㈤噺钂欑増錛?/li>
  • 鎵弿綰匡紙Scanline錛夛細鎵弿綰跨殑浣滅敤灝辨槸涓烘壂鎻忕嚎娓叉煋鍣ㄦ彁渚涗竴涓壂鎻忕殑鏂瑰紡鍜屽尯鍩燂紝浣挎覆鏌撳櫒鏈夊簭鍦板~鍏咃紱
  • 鎵弿綰挎覆鏌撳櫒錛圫canline Renderer錛夛細鍒嗗疄鑹插拰鑷畾涔夋覆鏌撳櫒涓ょ被錛屽疄鑹插彧鍏佽浣犵敤鍗曚竴鐨勯鑹插幓榪涜娓叉煋錛岃岃嚜瀹氬垯鍙仛寰楀濮垮褰╋紝姣斿娓愬彉銆佷綅鍥撅紱瀹冪浉褰撲簬GDI閲岀殑鐢誨埛銆?/li>

浜屻佸伐浣?/h3>
榪欐鎴戜滑浠ヤ竴涓嚜鍒剁殑欏剁偣婧愪笌妞渾緇勫悎浣滀負娓叉煋瀵硅薄錛岀敤瀹濊摑鑹茬殑瀹炶壊娓叉煋鍣ㄨ繘琛屾覆鏌擄紱

#include <agg_ellipse.h>

//................

class triangle_path {
public:
    triangle_path()
    {
        unsigned tmp_array[4][3]={
            {0  , 250, agg::path_cmd_move_to},
            {500, 250, agg::path_cmd_line_to},
            {250, 500, agg::path_cmd_line_to},
            {0  ,   0, agg::path_cmd_stop}
        };
        memcpy(m_points[0], tmp_array[0], sizeof(m_points));
    }
    unsigned vertex(double *x, double* y)
    {
        *x = m_points[m_step][0];
        *y = m_points[m_step][1];
        unsigned r = m_points[m_step][2];
        m_step++;
        return r;
    }
    void rewind(int)
    {
        m_step = 0;
    }
private:
    int m_step;
    unsigned m_points[4][3];
};

//...... in class the_application

    void on_draw()
   {
        ren_bas.reset_clipping(true);
        ren_bas.clear(agg::rgba8(255, 255, 255));
 
        agg::ellipse ellipse(250, 125, 125, 125);
        triangle_path triangle;
        rasterizer.reset();
        rasterizer.add_path(triangle);
        rasterizer.add_path(ellipse);
        agg::render_scanlines_aa_solid(rasterizer, scanline, ren_bas,
            agg::rgba8(45, 108, 155));  //娉ㄦ剰錛氬嚱鏁板悕涓殑scanline鏄鏁幫紒錛?/span>
    }

涓夈佽В閲?/h3>
鍏堢湅on_draw鍑芥暟錛氭垜浠厛瀹氫箟浜嗕袱涓《鐐規簮錛屼竴涓槸妞渾錛屽彟涓涓槸鑷埗鐨勪笁瑙掑艦錛涘厛鎶妑asterizer閲嶇疆錛屾竻闄や笂嬈¢噸緇樼暀涓嬬殑鍏夋爡淇℃伅錛涙垜浠啀鍦ㄥ厜鏍呬腑娣誨姞榪欎袱涓《鐐規簮錛岀敤娓叉煋鍣ㄦ覆鏌擄紝灝辨槸浜嗭紱
浣犲彲鑳芥劅鍒板鎬細涓轟粈涔堟病鏈夋壂鎻忕嚎娓叉煋鍣ㄧ殑瀹氫箟鍛紵鍏跺疄鍦?span style="color: #ff0000; ">render_scanlines_aa_solid閲岋紝灝卞凡緇忓府浣犲畾涔夊ソ浜嗗疄鑹叉覆鏌撳櫒銆傛妸render_scanlines_aa_solid灞曞紑鎴愶細

agg::renderer_scanline_aa_solid<agg::renderer_base<agg::pixfmt_rgb24>> renderer_scanline(ren_bas);
renderer_scanline.color(agg::rgba8(45, 108, 155, cover));
agg::render_scanlines(rasterizer, scanlines, renderer_scanline);
鏁堢巼鏄竴鏍風殑錛屽彧涓嶈繃鍑芥暟鐗堟湰鏇村姞綆媧併?/div>
欏剁偣婧愮殑瀹氫箟錛岀粨鍚堜笂涓鑺傜殑鐭ヨ瘑鍜宎gg_basics.h涓叧浜巔ath_commands_e鍜宲ath_flags_e鐨勫畾涔夛紝搴旇鏄彲浠ョ悊瑙g殑錛?/div>


Shihira 2012-08-01 20:01 鍙戣〃璇勮
]]>AGG鍏ラ棬錛堝叚錛?- 緇冧範鍜岀粏鑺?/title><link>http://m.shnenglu.com/Shihira/archive/2012/07/24/183618.html</link><dc:creator>Shihira</dc:creator><author>Shihira</author><pubDate>Tue, 24 Jul 2012 08:30:00 GMT</pubDate><guid>http://m.shnenglu.com/Shihira/archive/2012/07/24/183618.html</guid><wfw:comment>http://m.shnenglu.com/Shihira/comments/183618.html</wfw:comment><comments>http://m.shnenglu.com/Shihira/archive/2012/07/24/183618.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.shnenglu.com/Shihira/comments/commentRss/183618.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/Shihira/services/trackbacks/183618.html</trackback:ping><description><![CDATA[<div>瀛﹀埌鐩墠涓烘錛屽凡緇忚璇嗕簡鍏釜綾誨瀷錛?/div> <div> <ul> <li><strong>platform_support</strong></li> <li><strong>rendering_buffer</strong></li> <li><strong>rgba8</strong></li> <li><strong>pixfmt_rgb24</strong></li> <li><strong>rect_i</strong></li> <li><strong>renderer_base</strong></li> </ul> </div> <div>鐜板湪鏉ュ仛浜涚粌涔狅紝鐪嬬湅鏈夋病鏈夋帉鎻″榪囩殑涓滆タ錛屽茍涓旂伒媧昏繍鐢ㄥ惂銆?/div> <div></div> <h3>涓銆佸熀鏈鏋?/h3> <div>榪欎竴鑺傜殑紼嬪簭閮戒互榪欎釜妗嗘灦涓哄熀紜錛岄兘鏄湪on_draw涓◢寰敼鍔ㄧ殑錛?/div> <div> <div style="background-color: #eeeeee; font-size: 13px; border:1px solid #CCCCCC; border-left-color: #cccccc; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->#include <agg_pixfmt_rgb.h><br /> #include <agg_renderer_base.h><br /> #include <platform/agg_platform_support.h><br /> <br /> <span style="color: #0000FF; ">class</span> the_application : <span style="color: #0000FF; ">public</span> agg::platform_support<br /> {<br /> <span style="color: #0000FF; ">public</span>:<br />     the_application(agg::pix_format_e format, <span style="color: #0000FF; ">bool</span> flip_y) : <br />         agg::platform_support(format, flip_y),<br />         pix_fmt(rbuf_window()),<br />         ren_bas(pix_fmt) <span style="color: #008000; ">//</span><span style="color: #008000; ">鍒濆鍖栨覆鏌撳櫒</span><span style="color: #008000; "><br /> </span>    { }<br />     <br />     <span style="color: #0000FF; ">virtual</span> <span style="color: #0000FF; ">void</span> on_draw()<br />     {<br />          ren_bas.reset_clipping(true); <div>         ren_bas.clear(agg::rgba8(255, 255, 255));</div>     }<br /> <span style="color: #0000FF; ">private</span>:<br />     agg::pixfmt_rgb24 pix_fmt;<br />     agg::renderer_base<agg::pixfmt_rgb24> ren_bas;<br /> <br /> };<br /> <br /> <span style="color: #0000FF; ">int</span> agg_main(<span style="color: #0000FF; ">int</span> argc, <span style="color: #0000FF; ">char</span>* argv[])<br /> {<br />     the_application app(agg::pix_format_bgr24, <span style="color: #0000FF; ">true</span>);<br />     app.caption("AGG Test");<br />     <br />     <span style="color: #0000FF; ">if</span>(app.init(500, 500, agg::window_resize)) {<br />         <span style="color: #0000FF; ">return</span> app.run();<br />     }<br />     <span style="color: #0000FF; ">return</span> -1;<br /> }</div> </div> <h3>浜屻佺敾綰垮嚱鏁?/h3> <p>緙栧啓濡備笅鍑芥暟錛屽疄鐜板湪娓叉煋緙撳瓨涓敾綰跨殑鍔熻兘錛堟棤闇鍙嶉敮榻匡級錛?br />     <span style="color: #0000ff; ">inline void</span> stroke_line(<span style="color: #0000ff; ">int</span> x1, <span style="color: #0000ff; ">int</span> y1, <span style="color: #0000ff; ">int</span> x2, <span style="color: #0000ff; ">int</span> y2, agg::rgba8& color);<br /> 鍙傛暟錛?br /> </p> <ul> <li>x1, y1, x2, y2鍒嗗埆鏄袱涓鐐圭殑鍧愭爣錛?/li> <li>color鏄鑹詫紱</li> </ul> <p> </p> <h3>涓夈佺敾鍦嗗嚱鏁?/h3> <p>緙栧啓濡備笅鍑芥暟錛屽疄鐜板湪娓叉煋緙撳瓨涓敾鍦嗙殑鍔熻兘錛堟棤闇鍙嶉敮榻匡級錛?br />     <span style="color: #0000ff; ">void</span> stroke_round(<span style="color: #0000ff; ">int</span> r, <span style="color: #0000ff; ">int</span> C_x, <span style="color: #0000ff; ">int</span> C_y, agg::rgba8& color, <span style="color: #0000ff; ">float </span>step = 0.01) <br /> 鍙傛暟錛?br /> </p> <ul> <li>C_x, C_y 鏄渾蹇冪殑鍧愭爣錛?/li> <li>color鏄鑹詫紱</li> <li>step鏄闀匡紝涔熷氨鏄惂鍦嗙粏鍒嗘垚1/step杈瑰艦錛? </li> </ul> <p> </p> <h3>鍥涖佺瓟妗?/h3> <div> <p> </p> <ul> <li>鐢葷嚎鍑芥暟<br /> <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->inline <span style="color: #0000FF; ">void</span> stroke_line(<span style="color: #0000FF; ">int</span> x1, <span style="color: #0000FF; ">int</span> y1, <span style="color: #0000FF; ">int</span> x2, <span style="color: #0000FF; ">int</span> y2, agg::rgba8& color)<br /> {<br />     <span style="color: #0000FF; ">double</span> precision = max(abs(x1 - x2), abs(y1 - y2));<br />     <span style="color: #008000; ">//</span><span style="color: #008000; ">綺懼害錛屼篃灝辨槸鐢誨灝戜釜鐐?/span><span style="color: #008000; "><br /> </span><br />     <span style="color: #0000FF; ">for</span>(<span style="color: #0000FF; ">int</span> i=0; i <= precision; i++)<br />         ren_bas.copy_pixel( x1 + ( x2 - x1 ) / precision * i, <span style="color: #008000; ">//</span><span style="color: #008000; ">x</span><span style="color: #008000; "><br /> </span>            y1 + ( y2 - y1 ) / precision * i, <span style="color: #008000; ">//</span><span style="color: #008000; ">y</span><span style="color: #008000; "><br /> </span>            color);<br /> }</div> </li> <li>鐢誨渾鍑芥暟<br /> <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #0000FF; ">void</span> stroke_round(<span style="color: #0000FF; ">int</span> r, <span style="color: #0000FF; ">int</span> C_x, <span style="color: #0000FF; ">int</span> C_y, agg::rgba8& color, <span style="color: #0000FF; ">float</span> step = 0.01)<br /> {<br />     <span style="color: #0000FF; ">int</span> prev_x = <span style="color: #0000FF; ">int</span>(r * cos(-0.01)) + C_x,<br />         prev_y = <span style="color: #0000FF; ">int</span>(r * sin(-0.01)) + C_y; <span style="color: #008000; ">//</span><span style="color: #008000; ">淇濆瓨涓婁竴涓偣</span><span style="color: #008000; "><br /> </span><br />     <span style="color: #0000FF; ">int</span> x, y; <span style="color: #008000; ">//</span><span style="color: #008000; ">淇濆瓨褰撳墠鐨勭偣</span><span style="color: #008000; "><br /> </span>    <span style="color: #0000FF; ">for</span>(<span style="color: #0000FF; ">double</span> rad = 0; rad < 2 * PI + step; rad+= step) {<br />         x = <span style="color: #0000FF; ">int</span>(r * cos(rad)) + C_x;<br />         y = <span style="color: #0000FF; ">int</span>(r * sin(rad)) + C_y; <span style="color: #008000; ">//</span><span style="color: #008000; ">璁$畻寮у害涓簉ad鏃剁殑鍧愭爣</span><span style="color: #008000; "><br /> </span>        stroke_line(x, y, prev_x, prev_y, color);<br />         prev_x = x; prev_y = y;<br />     }<br /> }</div> </li> </ul> <p>鍙兘鏈夌殑浜轟細瑙夊緱濂囨殑鏄紝涓轟粈涔堝湪鐢葷嚎鍑芥暟涓紝涓嶇敤pix_fmt.copy_pixel()鑰岀敤ren_bas.copy_pixel()鍛紵鍥犱負錛屽湪pix_fmt涓紝娣峰悎鍣ㄤ笉榪涜媯鏌ワ紝鍍忕礌鎷瘋礉鐨勬椂鍊欎細鎷瘋礉鍒板壀瑁佸尯鍩熶互澶栵紝榪欐牱浼氶犳垚寰堝鎬殑鎯呭喌錛屼互鑷充簬濡傛灉鍐欏埌浜嗙紦瀛樹互澶栵紝榪樹細鍑虹幇寮傚父銆傛敞鎰忥紝鍓鐩掑姛鑳芥槸鍩虹娓叉煋鍣ㄧ駭鍒墠鎻愪緵鐨勶紝鏇村姞搴曞眰鐨勬搷浣滐紝姣斿鍍忕礌鏍煎紡娣峰悎鍜岀洿鎺ユ搷浣滅紦瀛橈紝楂樺眰嬈$殑娓叉煋鍣ㄦ槸鏃犱粠綆$悊鐨勩備負浜嗗畨鍏ㄨ搗瑙侊紝寤鴻灝戠鍩虹娓叉煋鍣ㄤ互涓嬬殑宸ュ叿……</p> </div> <div> </div><img src ="http://m.shnenglu.com/Shihira/aggbug/183618.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/Shihira/" target="_blank">Shihira</a> 2012-07-24 16:30 <a href="http://m.shnenglu.com/Shihira/archive/2012/07/24/183618.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>AGG鍏ラ棬錛堜竷錛?- 欏剁偣婧?/title><link>http://m.shnenglu.com/Shihira/archive/2012/07/24/183919.html</link><dc:creator>Shihira</dc:creator><author>Shihira</author><pubDate>Tue, 24 Jul 2012 08:30:00 GMT</pubDate><guid>http://m.shnenglu.com/Shihira/archive/2012/07/24/183919.html</guid><wfw:comment>http://m.shnenglu.com/Shihira/comments/183919.html</wfw:comment><comments>http://m.shnenglu.com/Shihira/archive/2012/07/24/183919.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://m.shnenglu.com/Shihira/comments/commentRss/183919.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/Shihira/services/trackbacks/183919.html</trackback:ping><description><![CDATA[<h3>涓銆佷慨鏀規ā鏉?/h3> <div>鐜板湪緇堜簬榪涘叆浜嗙湡姝g殑鐭㈤噺緇樺浘闃舵錛屾垜浠殑妯$増涔熼渶瑕佹湁鎵鏀瑰彉錛涜嚦浜庝負浠涔堬紝鏈変粈涔堜綔鐢紝浠ュ悗浼氳鍒幫紱<br />鍖呭惈涓嬮潰鐨勫ご鏂囦歡錛屽茍涓斿湪the_application綾諱腑娣誨姞涓や釜鎴愬憳銆?/div> <div> <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #008000; ">//</span><span style="color: #008000; ">鎵弿綰垮拰鎵弿綰垮厜鏍呭櫒</span><span style="color: #008000; "><br /> </span>#include <agg_scanline_u.h><br /> #include <agg_rasterizer_scanline_aa.h><br /> <br /> <span style="color: #0000FF; ">private</span>:<br />     <span style="color: #008000; ">//</span><span style="color: #008000; ">鎵弿綰垮拰鎵弿綰垮厜鏍呭櫒</span><span style="color: #008000; "><br /> </span>    agg::scanline_u8 scanline;<br />     agg::rasterizer_scanline_aa<> rasterizer;</div> </div> <div> <p><br /> </p> <h3> 浜屻侀《鐐規簮</h3> <p> </p> <div>欏剁偣婧愶紙Vertex Source錛変笉鏄竴涓被錛岃屾槸涓縐嶇被鐨勬ā寮忋傝繖縐嶇被閲岄潰鏈塺ewind()鍑芥暟鍜寁ertex()鍑芥暟緇橝GG鍐呴儴璋冪敤錛堟病閿欙紝榪欏氨鏄畠鐨勫畾涔夛級銆傜被濡傚叾鍚嶏紝欏剁偣婧愬氨鏄負緇樺浘緋葷粺鎻愪緵欏剁偣淇℃伅鐨勶紝澶у鑳芥兂璞″緱鍑鴻繖涓や釜鍑芥暟鐨勪綔鐢ㄤ簡鍚楋紵</div> <div><strong>rewind()</strong>錛氬洖鍒版渶寮濮嬩釜姝ラ錛?/div> <div><strong>vertex(double* x, double* y)</strong>錛氭瘡璋冪敤涓嬈★紝璺充竴涓楠わ紙鐐癸級錛屾瘡涓涓楠ら兘杈撳嚭欏剁偣鐨剎,y鍧愭爣錛堢伆鑹插瓧錛夛紝浠ュ強榪欎釜鍧愭爣鐨勭粯鍥懼懡浠わ紙绱壊瀛楋級錛?br /> <img src="http://m.shnenglu.com/images/cppblog_com/shihira/5.png" border="0" alt="" width="296" height="256" /></div> <div></div> <h3>涓夈佸唴緗《鐐規簮</h3> <div>AGG鍐呯疆浜嗗ぇ閲忕殑欏剁偣婧愶紝鎴戜滑鍙互鐩存帴璋冪敤錛屼粬浠寘鎷細</div> <div><strong>agg::path_storage</strong></div> <div><strong>agg::arc</strong></div> <div><strong>agg::rounded_rect</strong></div> <div><strong>agg::ellipse</strong></div> <div><strong>agg::curve3</strong></div> <div><strong>agg::curve4 ......</strong></div> <div>絳夌瓑錛屼負浠涔堟病鏈夌嚎銆佺偣欏剁偣婧愶紵鍏跺疄錛宲ath_storage宸茬粡鍐呯疆浜嗙敾綰垮嚱鏁般佺敾寮у嚱鏁般佺敾璐濆灝旀洸綰垮嚱鏁幫紝浣犲彲浠ョ敤path_storage鍒涢犲嚑涔庝換浣曠殑鍥懼艦銆傝嚦浜庣敾鐐癸紝copy_pixel()鎴栬呯敤妞渾鍚?#8230;…</div> <div></div> <h3>鍥涖佽礬寰勫偍瀛樺櫒</h3> <div>Path storage 鏄敤鏉ョ鐞嗚礬寰勩佺敾澶嶆潅鍥懼艦鐨勩傚湪涓婇潰鍙互浠繪剰娣誨姞鐩寸嚎銆佹洸綰褲佸叾浠栬礬寰勩?/div> <h4>澶存枃浠?/h4> <div><span style="color: #0000ff; ">#include</span> <agg_path_storage.h></div> <h4>綾誨瀷瀹氫箟</h4> <div><span style="color: #0000ff; ">typedef</span> path_base<vertex_block_storage<<span style="color: #0000ff; ">double</span>> > path_storage;</div> <h4>鍩烘湰鎴愬憳鍑芥暟</h4> <div> <ul> <li><strong>move_to()</strong><br />     娣誨姞鍛戒護涓?path_cmd_move_to 鐨勯《鐐癸紝鎰忎負涓嬩竴鏉$嚎浠庤繖涓偣寮濮嬬敾錛?/li> <li><strong>line_to()</strong><br />     娣誨姞鍛戒護涓?path_cmd_line_to 鐨勯《鐐癸紝鎰忎負鐢葷嚎鍒拌繖涓偣錛?/li> <li><strong>arc_to(double rx, double ry, double angle, bool large_arc_flag, bool sweep_flag, double x, double y)</strong><br />     娣誨姞涓鏉″姬璺緞錛岀敾杞撮暱涓簉x, ry錛岃搴︿負angle錛屼紭/鍔e姬錛岄『閫嗘椂閽堬紝緇堢偣鍦?x,y)銆?/li> <li><strong>curve3_to()</strong><br />     娣誨姞璐濆灝旀洸綰匡紝鍙傛暟涓轟竴涓帶鍒剁偣鍜岀粓鐐圭殑鍧愭爣</li> <li><strong>curve4_to()</strong><br />     娣誨姞璐濆灝旀洸綰匡紝鍙傛暟涓轟袱涓帶鍒剁偣鍜岀粓鐐圭殑鍧愭爣</li> <li><strong>join_path()</strong><br />     娣誨姞涓涓《鐐規簮錛屽嵆緇勫悎</li> <li><strong>vertex(unsigned idx, double* x, double* y)<br /> last_vertex(double* x, double* y)<br /> vertex(double* x, double* y)</strong><br />     鍙栭《鐐逛綅緗紝鍓嶈呬負宸茬煡姝ラ錛屽悗涓よ呬負欏哄簭鎴栧掑簭鑾峰彇</li> <li><strong>modify_vertex()<br /> modify_command()</strong><br />     淇敼姝ラ涓篿dx鐨勯《鐐瑰潗鏍囧拰鍛戒護</li> </ul> </div> <div></div> <h3>浜斻佸叾浠栭《鐐規簮</h3> <div>鍏朵粬欏剁偣婧愬氨涓嶄竴涓浠嬬粛浜嗭紝鍙垪鍑哄叾澶存枃浠跺拰鏋勯犲嚱鏁幫細</div> <div> <ul> <li><span style="color: #0000ff; ">#include <agg_ellipse.h></span><br /> <strong>ellipse(double x, double y, double rx, double ry, unsigned num_steps=0, bool cw=false)</strong><br />     鍦嗗績(x, y)鍜岄暱鐭崐杞村垎鍒負rx, ry錛屾楠ゆ暟浣峮um_steps錛堟棤鐢級錛宑w鍐沖畾鐩鎬氦鍦版柟鏄惁絀哄嚭</li> <li><span style="color: #0000ff; ">#include <agg_arc.h></span><br /> <strong>arc(double x,  double y, double rx, double ry, double a1, double a2, bool ccw=true)</strong><br />     鍦嗗績涓?x, y)鍜岄暱鐭崐杞村垎鍒負rx, ry錛屽垵濮嬭搴﹀拰緇堢粨瑙掑害涓篴1, a2</li> <li><span style="color: #0000ff; ">#include <agg_curves.h></span><br /> <strong>curve3(double x1, double y1, double x2, double y2, double x3, double y3)</strong><br />     涓変釜鐐癸紝鍒嗗埆涓猴細鍒濆鐐癸紝鎺у埗鐐逛竴錛岀粓緇撶偣</li> <li><span style="color: #0000ff; ">#include <agg_curves.h></span><br /> <strong>curve4(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4)</strong><br />     鍥涗釜鐐癸紝鍒嗗埆涓猴細鍒濆鐐癸紝鎺у埗鐐逛竴錛屾帶鍒剁偣浜岋紝緇堢粨鐐?/li> <li><span style="color: #0000ff; ">#include <agg_rounded_rect.h></span><br /> <strong>rounded_rect(double x1, double y1, double x2, double r)</strong><br />     瀵硅鐐圭殑鍧愭爣鍜屽渾瑙掑崐寰?/li> </ul> </div> <div></div> <p><strong style="color: #993300; ">鑷充簬鎬庢牱鎶婁粬浠敾鍦ㄦ覆鏌撳唴瀛樹笂鍛紝鎴戜滑涓嬩竴綃囦細璁插埌銆?/strong><strong style="color: red; "><br />澶存枃浠朵篃娓愭笎鍦板浜嗚搗鏉ワ紝鍖呭惈澶存枃浠舵椂鐨勫伐浣滈噺鏈夌偣澶э紱鎴戠壒鍦板垪浜嗕竴涓ご鏂囦歡錛岄噷闈㈠凡緇忓寘鍚簡鎵鏈夌殑AGG澶存枃浠訛紝浠ュ悗澶у鍙渶瑕佸寘鍚畠灝卞ソ浜嗐?br />涓嬭澆澶勶細</strong><a href="http://m.shnenglu.com/Files/Shihira/agg.h.zip">http://m.shnenglu.com/Files/Shihira/agg.h.zip</a><a href="http://m.shnenglu.com/Files/Shihira/AGG.zip"></a></p> </div><img src ="http://m.shnenglu.com/Shihira/aggbug/183919.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/Shihira/" target="_blank">Shihira</a> 2012-07-24 16:30 <a href="http://m.shnenglu.com/Shihira/archive/2012/07/24/183919.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>AGG鍏ラ棬錛堝洓錛?- 娓叉煋緙撳瓨鍜屾販鍚堝櫒http://m.shnenglu.com/Shihira/archive/2012/07/24/183204.htmlShihiraShihiraTue, 24 Jul 2012 08:29:00 GMThttp://m.shnenglu.com/Shihira/archive/2012/07/24/183204.htmlhttp://m.shnenglu.com/Shihira/comments/183204.htmlhttp://m.shnenglu.com/Shihira/archive/2012/07/24/183204.html#Feedback0http://m.shnenglu.com/Shihira/comments/commentRss/183204.htmlhttp://m.shnenglu.com/Shihira/services/trackbacks/183204.html涓銆佷笂涓鑺傜殑浠g爜
        agg::rendering_buffer &rbuf = rbuf_window();
        agg::pixfmt_rgb24 pixf(rbuf);

        agg::renderer_base<agg::pixfmt_rgb24> renb(pixf);
        renb.clear(agg::rgba8(255, 255, 255));

        pixf.copy_pixel(20, 20, agg::rgba8(0, 0, 255));

浜屻佹覆鏌撶紦瀛?/h3>
娓叉煋緙撳瓨淇濆瓨鐫涓涓釜鍍忕礌錛屼綔涓篈GG鐨勭敾甯冦傚畠浠呬粎鏄竴涓唴瀛樺潡錛岀敤鏉ュ偍瀛樺儚绱犱俊鎭紝涓嶆彁渚涗換浣曠粯鍥懼姛鑳斤紝鍙厑璁鎬綘璇誨彇鍜屼慨鏀歸噷闈㈢殑鏁版嵁銆傚畠涔熶笉鍛婅瘔浣犻噷闈㈢殑鍍忕礌鏄伆搴︾殑銆丷GB鐨勮繕鏄疪GBA鐨勶紝涓嶅憡璇変綘浠庡摢閲屽埌鍝噷鏄竴涓儚绱?#8212;—瀹冨彧鏄敤鏉ョ鐞嗗唴瀛樻暟鎹殑銆?/div>

澶存枃浠?/h4>
#include "platform/agg_platform_support.h"

綾誨瀷瀹氫箟

typedef row_accessor<int8u> rendering_buffer //int8u鏄? bit鏃犵鍙鋒暣褰?/div>

鍩烘湰鎴愬憳鍑芥暟

  • rendering_buffer(int8u* buf, unsigned width, unsigned height, int stride) 
            鏋勯犲嚱鏁幫紝鎸囧畾浜嬪厛鍒嗛厤濂界殑鍐呭瓨鍧楋紙鍒版椂灝辯敾鍒頒笂闈級棣栧湴鍧銆佸楂樸佷竴琛岀殑瀛楄妭鏁幫紙榛樿鍏ㄩ儴閮芥槸0錛夛紱
  • row_ptr(int y)
            榪斿洖絎瑈琛岀殑棣栧湴鍧錛?/li>
  • copy_from(void *buf)
            浠巄uf涓嫹璐濆儚绱狅紱
  • clear(int8u value)
            鐢╲alue娓呯┖緙撳瓨
  • buf(), height(), weight(), stride()
            榪斿洖緙撳瓨棣栧湴鍧銆佸楂樸佷竴琛岀殑瀛楄妭鏁幫紱
娉細浠g爜涓殑rbuf_window()鏄痯latform_support鐨勪竴涓垚鍛樺嚱鏁幫紝鐢ㄤ簬榪斿洖platform_support涓寮濮嬪府浣犵敵璇風殑緙撳瓨寮曠敤銆?/span>

涓夈佹販鍚堝櫒

娣峰悎鍣ㄧ殑瀛樺湪鏄負浜嗛傚簲涓嶅悓騫沖彴銆佷笉鍚岄渶姹備笅鐨勪笉鍚屽儚绱犳牸寮忋傛販鍚堝櫒鏈変笁縐嶏細agg::rgba錛?strong>agg::rgba8鍜?strong>agg::rgba16錛岄兘鏄敤鏉ユ寚瀹氶鑹茬殑錛宺gba姣忎釜閫氶亾鍌ㄥ瓨涓篸ouble錛宺gba8涓簎nsigned char錛宺gba16涓篿nt鎴杔ong int錛涙販鍚堝櫒璧峰埌鐨勪綔鐢ㄥ氨鍍廤in32API閲岀殑RGB鍜孋OLORREF瀹忋?/div>

澶存枃浠?/h4>
#include "agg_pixfmt_rgba.h"

綾誨瀷瀹氫箟

struct rgba8; //瀵癸紝浣犳病鏈夌湅閿欙紝鏄粨鏋勶紝涓嶆槸綾?#8230;…

鍩烘湰鎴愬憳鍑芥暟

  • rgba8(unsigned r, unsigned g, unsigned b, unsigned a)
            鏃犻』瑙i噴浜嗗惂錛屾渶澶?55錛?/li>
  • clear(), no_color()
            鍥涗釜閫氶亾鍏ㄩ儴娓呴浂錛屼篃灝辨槸鍙樻病鑹插挴錛?/li>
  • transparent()
            alpha娓呴浂錛屽彉閫忔槑錛?/li>
  • opacity()
            榪斿洖閫忔槑搴︼紝鐢╠ouble琛ㄧず錛?/li>
  • gradient(agg::rgba8 &c, double k)
            棰滆壊姊害錛屽氨鏄鑹插彉涓轟粠鍘熷厛鐨勯鑹叉笎鍙樹負c錛屽彉鍖栫巼涓簁錛?/li>
  • add(agg::rgba8 &c, unsinged cover)
            棰滆壊鍙犲姞錛屽彔鍔犱竴涓忔槑搴︿負cover/255鐨勯鑹瞔錛?/li>

鎴愬憳鍙橀噺

  • r, g, b, a閮芥槸鏃犵鍙鋒暣鍨嬶紱

鍥涖佸儚绱犳牸寮忔販鍚堝櫒


鍍忕礌鏍煎紡娣峰悎鍣ㄧ殑浣滅敤鏄洿鎺ユ搷浣滃儚绱狅紙涔熷氨鏄紦瀛橀噷淇濆瓨鐨勬暟鎹紝浣嗚搗鐮佹湁涓儚绱犵殑鏍峰瓙錛夛紝璧峰埌Win32API閲岀殑SetPixel()鍜孏etPixel()鐨勪綔鐢ㄣ傚儚绱犳牸寮忕敱涓や釜灞炴у喅瀹氾細娣峰悎鍣ㄧ被鍨?strong>銆恆gg::rgba8/agg::rgba16銆?/strong>銆乥gr/rgb/rgba/abgr欏哄簭銆恆gg::order_bgr/agg::order_rgb/agg::order_rgba/agg::order_abgr銆?/strong>——榪欐牱錛屽叡8縐嶅儚绱犳牸寮忥紝瀹冧滑璧峰悕瀛楃殑瑙勫垯灝辨槸錛?/div>
agg::pixfmt_[order][bits*3];
涓嬮潰鐢ㄦ渶甯哥敤鐨刟gg::pixfmt_rgb24鏉ヨВ閲婏細

澶存枃浠?/h4>
#include "agg_pixfmt_rgb.h"

綾誨瀷瀹氫箟

typedef pixfmt_alpha_blend_rgb<blender_rgb<rgba8,  order_rgb>, rendering_buffer> pixfmt_rgb24;

鍩烘湰鎴愬憳鍑芥暟

  • pixfmt_rgb24(agg::rendering_buffer &) 
            鏋勯犲嚱鏁幫紝鎸囧畾緙撳瓨灝卞ソ錛?/li>
  • blend_pixel(agg::rgba8& c, int x, int y, int8u cover)
            鐢ㄩ鑹瞔浠over錛堣鐩栫巼=閫忔槑搴︼級鐨勯忔槑搴︽販鍚堝儚绱?x, y)錛?/li>
  • copy_pixel(agg::rgba8& c, int x, int y)錛宲ixel(int x, int y)
            榪欎釜灝辨槸鐩稿綋浜嶴etPixel()鍜孏etPixel()浜嗭紱
  • copy_hline(int x, int y, unsigned len, agg::rgba8& c)
    copy_vline(int x, int y, unsigned len, agg::rgba8& c)  
            浠?x, y)寮濮嬫墦妯紙绔栵級欏哄簭璁劇疆len闀垮害鐨勫儚绱狅紱
  • blend_hline(int x, int y錛?unsigned len, agg::rgba8& c, int8u cover)
    blend_vline(int x, int y錛?unsigned len, agg::rgba8& c, int8u cover) 
            浠?x, y)寮濮嬫墦妯紙绔栵級欏哄簭娣峰悎len闀垮害鐨勫儚绱狅紱
  • copy_solid_hspan(int x, int y錛?unsigned len, agg::rgba8* colors)
    copy_solid_vspan(int x, int y錛?unsigned len, agg::rgba8* colors)
    blend_solid_hspan(int x, int y錛?unsigned len, agg::rgba8* colors, int8u* cover, int8u cover)
    blend_solid_vspan(int x, int y錛?unsigned len, agg::rgba8* colors, int8u* cover, int8u cover)
            鍚屼笂涓や釜錛屼笉榪囦笉鏄竴涓鑹詫紝鏄竴緋誨垪鐨勯鑹詫紱
  • for_each_pixel(void (*f)(agg::rgba8* color))
            姣忎竴鍍忕礌鎵ц涓閬峟錛?/li>
  • copy_from(agg::rendering_buffer & from, int xdst, int ydst, int xsrc, int ysrc, unsigned len)
    blend_from(agg::rendering_buffer & from, int xdst, int ydst, int xsrc, int ysrc, unsigned len[, unsigned cover])  
            浠庣紦瀛榝orm涓?xsrc, ysrc)欏哄簭澶嶅埗錛堟販鍚堬級鍒板綋鍓嶇紦瀛樼殑(xdst, ydst)涓紱
銆愬叾浠栧嚱鏁板拰鍍忕礌鏍煎紡灝辮闈犲ぇ瀹剁殑涓句竴鍙嶄笁錛岃Е綾繪梺閫氫簡……銆?/div>

浜斻佺粨璇?/h3>
涓婇潰璇寸殑涓夎呭叧緋繪槸錛氭販鍚堝櫒娣峰悎RGBA鍥涗釜閫氶亾錛屽儚绱犳牸寮忔販鍚堝櫒娣峰悎鍍忕礌錛屽儚绱犳牸寮忔販鍚堝櫒鎿嶄綔鐨勭粨鏋滄槸浣挎覆鏌撶紦瀛橀噷鐨勬暟鎹彂鐢熷彉鍖栵紝鑰屾販鍚堝櫒鍒欎笉浼氾紝鍥犱負瀹冪殑浣滅敤浠呬粎鏄〃紺洪鑹層?/div>

Shihira 2012-07-24 16:29 鍙戣〃璇勮
]]>AGG鍏ラ棬錛堜簲錛?- 鍩虹娓叉煋鍣?/title><link>http://m.shnenglu.com/Shihira/archive/2012/07/24/183556.html</link><dc:creator>Shihira</dc:creator><author>Shihira</author><pubDate>Tue, 24 Jul 2012 08:29:00 GMT</pubDate><guid>http://m.shnenglu.com/Shihira/archive/2012/07/24/183556.html</guid><wfw:comment>http://m.shnenglu.com/Shihira/comments/183556.html</wfw:comment><comments>http://m.shnenglu.com/Shihira/archive/2012/07/24/183556.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/Shihira/comments/commentRss/183556.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/Shihira/services/trackbacks/183556.html</trackback:ping><description><![CDATA[<div>鍩虹娓叉煋鍣紙Base Renderer錛夋槸鎵弿綰挎覆鏌撳櫒鐨勫熀紜錛屽彲浠ヨ錛屾甯告儏鍐典笅錛屼綘緇樼敾浠諱綍鍥懼艦銆佸仛浠諱綍浜嬶紝閮介渶瑕侀氳繃瀹冦傝屽熀紜娓叉煋鍣ㄩ渶瑕佷綘浠ユā鐗堢殑褰㈠紡鎻愪緵鍍忕礌鏍煎紡鐨勪俊鎭紝浠栧皢浼氶氳繃鍍忕礌鏍煎紡娣峰悎鍣ㄦ潵瀹炵幇娓叉煋銆傚叾瀹烇紝鍩虹娓叉煋鍣ㄦ瘮鍍忕礌鏍煎紡娣峰悎鍣ㄥ浜嗗壀瑁佺洅鐨勫姛鑳斤紝鍏朵粬娣峰悎銆佹嫹璐濅粈涔堢殑鍜屽儚绱犳牸寮忔販鍚堝櫒鏄浉浼肩殑錛岃繖閲屽氨涓嶅垪鍑烘潵浜嗐?/div><div></div><h3>鐭╁艦綾?/h3><div>AGG灝佽浜嗕竴涓笓闂ㄨ〃紺虹煩褰㈢殑妯℃澘綾籸ect_base錛屾柟渚跨煩褰㈢殑鎿嶄綔銆備笅闈㈢敤rect_i璇存槑涓涓嬨?       </div><h4>澶存枃浠?/h4><div><span style="color: #0000ff; ">#include</span> "agg_basics.h"</div><h4>綾誨瀷瀹氫箟</h4><div><span style="color: #0000ff; ">typedef</span> rect_base<int> rect_i;</div><h4>鍩烘湰鎴愬憳鍑芥暟</h4><div><ul><li><span style="color: #000080; "><strong>rect_i(x1, y1, x2, y2)<br /></strong></span>        鏋勯犲嚱鏁幫紝緇欏嚭鏈灝忓拰鏈澶у潗鏍囷紱</li><li><strong><font color="#000080">normalize()<br /></font></strong>        淇x1>x2鎴杫1>y2鐨勪笉鍚堟硶鐭╁艦錛?/li><li><span style="color: #000080; "><strong>clip(rect_i& r)</strong></span><br />        鍙栧綋鍓嶇煩褰笌r鐩鎬氦鐨勫尯鍩熺煩褰綔涓哄綋鍓嶇煩褰紱</li><li><span style="color: #000080; "><strong>is_valid()</strong></span><br />        媯鏌ョ煩褰㈡槸鍚﹀悎娉曪紱</li><li><span style="color: #000080; "><strong>hit_test(int x, int y)<br /></strong></span>        媯鏌?x, y)鏄惁鍦ㄧ煩褰㈠唴錛?/li></ul></div><div></div><h3>鍩虹娓叉煋鍣?/h3><h4>澶存枃浠?/h4><div><span style="color: #0000ff; ">#include</span> "agg_renderer_base"</div><h4>綾誨瀷瀹氫箟</h4><div><span style="color: #0000ff; ">template</span><class PixelFormat> class renderer_base</div><h4>鍩烘湰鎴愬憳鍑芥暟</h4><div><ul><li><span style="color: #000080; "><strong>renderer_base(PixelFormat)<br /></strong></span>        鏋勯犲嚱鏁幫紝鎻愪緵鍍忕礌鏍煎紡錛?/li><li><strong style="color: #000080; ">ren()<br /></strong>        榪斿洖鍍忕礌鏍煎紡瀵硅薄錛?/li><li><span style="color: #000080; "><strong>clip_box(x1,y1,x2,y2)<br />clip_box_naked(x1,y1,x2,y2)<br /></strong></span>        璁劇疆褰撳墠鍓鐩掍負x1,y1,x2,y2鍥存垚鐨勫壀瑁佺洅錛屽墠鑰呮鏌ュ壀瑁佺洅鏄惁鍚堟硶錛屽悗鑰呬笉媯鏌ャ?/li><li><span style="color: #000080; "><strong>reset_clipping(bool visibility)<br /></strong></span>        閲嶇疆鍓鐩掞紝visibility鍐沖畾鍓鐩掓槸閾烘弧紿楀彛錛堝彲瑙嗭級榪樻槸0錛堜笉鍙錛夛紱</li><li><span style="color: #000080; "><strong>clip_box()<br />xmin()<br />ymin()<br />xmax()<br />ymax()<br /></strong></span>        榪斿洖褰撳墠鍓鐩掔煩褰€佷互鍙婄旱妯潗鏍囷紱</li><li><span style="color: #000080; "><strong>copy_from()<br />blend_from()<br /></strong></span>        鍙互姣旇緝鏂逛究鍦般佷互鐭╁艦鏂瑰紡鎷瘋礉鍜屾販鍚堢紦瀛橀噷鐨勫浘鍍忎簡錛?/li></ul></div><img src ="http://m.shnenglu.com/Shihira/aggbug/183556.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/Shihira/" target="_blank">Shihira</a> 2012-07-24 16:29 <a href="http://m.shnenglu.com/Shihira/archive/2012/07/24/183556.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>AGG鍏ラ棬錛堜笁錛?- 娓叉煋鍣ㄤ粙緇?/title><link>http://m.shnenglu.com/Shihira/archive/2012/07/24/183117.html</link><dc:creator>Shihira</dc:creator><author>Shihira</author><pubDate>Tue, 24 Jul 2012 08:28:00 GMT</pubDate><guid>http://m.shnenglu.com/Shihira/archive/2012/07/24/183117.html</guid><wfw:comment>http://m.shnenglu.com/Shihira/comments/183117.html</wfw:comment><comments>http://m.shnenglu.com/Shihira/archive/2012/07/24/183117.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/Shihira/comments/commentRss/183117.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/Shihira/services/trackbacks/183117.html</trackback:ping><description><![CDATA[<h3>涓銆佺湅鍥濧GG鍏ラ棬錛堜簩錛夋椂on_draw()铏氬嚱鏁伴噷鐨勪唬鐮侊細</h3> <div> <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->        agg::rendering_buffer &rbuf = rbuf_window();<br />         agg::pixfmt_rgb24 pixf(rbuf);<br /> <br />         agg::renderer_base<agg::pixfmt_rgb24> renb(pixf);<br />         renb.clear(agg::rgba8(255, 255, 255));<br /> <br />         pixf.copy_pixel(20, 20, agg::rgba8(0, 0, 255));</div> </div> <div></div> <h3>浜屻佹覆鏌撳櫒</h3> <h4>浠涔堟槸娓叉煋錛?/h4> <div>娓叉煋鏄妸鍐呭瓨涓殑緇樺浘鎸囦護鐪熸鎵ц鐨勮繃紼嬨傛瘮濡傝錛岀粯鍒朵竴鏉$嚎孌碉紝鍦ㄥ唴瀛橀噷鍙細淇濆瓨鐫涓や釜绔偣鐨勫潗鏍囧拰綰挎鐨勫搴︼紝鑰屾覆鏌撳氨鎶婅繖涓や釜绔偣杞崲涓轟綅鍥俱佺紦瀛樼敋鑷蟲樉紺哄睆涓婄殑涓涓釜鍍忕礌鐨勬暟鎹傚張姣斿璇達紝綰擱鏈轟笅闈㈣偗瀹氭槸瑕佹湁鎶曞獎鐨勪簡錛屼絾榪欎釜鎶曞獎鐨勮川閲忥紝灝辯敱娓叉煋鍣ㄥ喅瀹氾紱綰挎鏄蛋鏍風殑錛圓錛夛紝榪樻槸鍙嶈蛋鏍風殑錛圔錛夛紝闈犵殑灝辨槸娓叉煋鍣ㄧ殑鎸囦護浜嗐?br /> <img src="http://m.shnenglu.com/images/cppblog_com/shihira/20120713-1.png" border="0" alt="" width="392" height="193" /><br /> <img src="http://m.shnenglu.com/images/cppblog_com/shihira/20120713-2.png" border="0" alt="" width="460" height="193" /></div> <h4>AGG閲岀殑娓叉煋鍣?/h4> <div>AGG鍒嗘湁澶氱娓叉煋鍣ㄣ傚湪AGG涓紝娓叉煋鍣ㄨ礋璐h〃鐜版壂鎻忕嚎涓殑姣忎釜綰挎銆傚湪娓叉煋鍣ㄤ箣鍓嶏紝AGG鍥懼艦涓殑綰挎鏄病鏈夐鑹插肩殑錛屽彧鏄綅緗侀暱搴﹀拰 瑕嗙洊鐜囷紙閫忔槑搴︼級銆傛覆鏌撳櫒璧嬩簬綰挎鑹插僵錛屾渶緇堟垚涓轟竴騫呭畬鏁寸殑鍥懼儚銆傚叾涓渶甯哥敤鐨勬槸錛?/div> <div> <ul> <li>鍍忕礌鏍煎紡娓叉煋鍣?/li> <li>鍩虹娓叉煋鍣?/li> <li>鎵弿綰匡紙鍙嶉敮榻匡級娓叉煋鍣?/li> </ul> </div> <div></div> <h3>涓夈佷笁縐嶆覆鏌撳櫒闂寸殑鍏崇郴</h3> <div> <ul> <li>鍍忕礌鏍煎紡娓叉煋鍣紙PixelFormat Renderer錛夋槸鏈鍩虹鐨勬覆鏌撳櫒錛屼笉闇瑕佷換浣曞叾浠栨覆鏌撳櫒鐨勬敮鎸侊紝鎵浠ュ彲浠ョ洿鎺ュ0鏄庯紱</li> <li>鍩虹娓叉煋鍣紙Base Renderer錛夋槸涓駭娓叉煋鍣紝闇瑕佸儚绱犳牸寮忎綔涓烘ā鐗堝拰鍍忕礌鏍煎紡娓叉煋鍣ㄧ殑鏀寔;</li> <li>鎵弿綰挎覆鏌撳櫒錛圫canline Renderer錛夋槸楂樼駭娓叉煋鍣紝闇瑕佸熀紜娓叉煋鍣ㄤ綔涓烘ā鐗堝拰鏀寔;</li> </ul> </div> <div>錛堟敞錛氭ā鐗堜富瑕佹槸涓轟簡鑾峰彇鍍忕礌鏍煎紡鐨勪俊鎭級</div> <div></div> <blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"> <div>鎵浠ワ紝闄ゅ儚绱犳牸寮忔覆鏌撳櫒澹版槑涓猴細<br /> <span style="color: #008000; ">agg::class object(agg::rendering_buffer &);</span><br />涔嬪鍏朵粬鐨勬覆鏌撳櫒閮藉0鏄庝負錛?/div><div> <span style="color: #008000; ">agg::class<template> object(template &);</span></div> </blockquote> <div></div><img src ="http://m.shnenglu.com/Shihira/aggbug/183117.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/Shihira/" target="_blank">Shihira</a> 2012-07-24 16:28 <a href="http://m.shnenglu.com/Shihira/archive/2012/07/24/183117.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <a href="http://m.shnenglu.com/">青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品</a> <div style="position:fixed;left:-9000px;top:-9000px;"><font id="pjuwb"></font><button id="pjuwb"><pre id="pjuwb"></pre></button><sub id="pjuwb"></sub><tbody id="pjuwb"><var id="pjuwb"><address id="pjuwb"></address></var></tbody><listing id="pjuwb"><label id="pjuwb"><strong id="pjuwb"></strong></label></listing><wbr id="pjuwb"><small id="pjuwb"><tbody id="pjuwb"></tbody></small></wbr><ins id="pjuwb"><xmp id="pjuwb"></xmp></ins><style id="pjuwb"></style><label id="pjuwb"><em id="pjuwb"><li id="pjuwb"></li></em></label><samp id="pjuwb"></samp><menu id="pjuwb"><input id="pjuwb"></input></menu><pre id="pjuwb"><tbody id="pjuwb"><tfoot id="pjuwb"><button id="pjuwb"></button></tfoot></tbody></pre><form id="pjuwb"></form><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"><sup id="pjuwb"></sup></label></style></i><li id="pjuwb"><table id="pjuwb"><abbr id="pjuwb"></abbr></table></li><video id="pjuwb"></video><dfn id="pjuwb"></dfn><progress id="pjuwb"></progress><strong id="pjuwb"></strong><mark id="pjuwb"></mark><em id="pjuwb"></em><tbody id="pjuwb"><p id="pjuwb"><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike></p></tbody><option id="pjuwb"></option><strike id="pjuwb"></strike><u id="pjuwb"></u><td id="pjuwb"><center id="pjuwb"><tr id="pjuwb"></tr></center></td><em id="pjuwb"><mark id="pjuwb"><em id="pjuwb"><tt id="pjuwb"></tt></em></mark></em><strong id="pjuwb"></strong><wbr id="pjuwb"></wbr><s id="pjuwb"></s><strong id="pjuwb"></strong><legend id="pjuwb"></legend><nav id="pjuwb"></nav><dl id="pjuwb"><th id="pjuwb"><dl id="pjuwb"></dl></th></dl><noframes id="pjuwb"><ins id="pjuwb"></ins></noframes><font id="pjuwb"></font><strike id="pjuwb"><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"></label></style></i></strike><output id="pjuwb"></output><thead id="pjuwb"><pre id="pjuwb"></pre></thead><source id="pjuwb"></source><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem><pre id="pjuwb"><span id="pjuwb"><pre id="pjuwb"><big id="pjuwb"></big></pre></span></pre><cite id="pjuwb"><fieldset id="pjuwb"><s id="pjuwb"><rt id="pjuwb"></rt></s></fieldset></cite><big id="pjuwb"><progress id="pjuwb"><big id="pjuwb"></big></progress></big><samp id="pjuwb"><delect id="pjuwb"></delect></samp><dl id="pjuwb"></dl><strike id="pjuwb"><nav id="pjuwb"><dl id="pjuwb"><strong id="pjuwb"></strong></dl></nav></strike><tbody id="pjuwb"><b id="pjuwb"><optgroup id="pjuwb"><rp id="pjuwb"></rp></optgroup></b></tbody><em id="pjuwb"></em><xmp id="pjuwb"><blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote></xmp> <i id="pjuwb"><abbr id="pjuwb"><i id="pjuwb"><abbr id="pjuwb"></abbr></i></abbr></i><center id="pjuwb"><acronym id="pjuwb"><center id="pjuwb"></center></acronym></center><pre id="pjuwb"></pre><ul id="pjuwb"><thead id="pjuwb"></thead></ul><blockquote id="pjuwb"><pre id="pjuwb"><sup id="pjuwb"></sup></pre></blockquote><acronym id="pjuwb"></acronym><big id="pjuwb"><s id="pjuwb"></s></big><th id="pjuwb"></th><th id="pjuwb"></th><tbody id="pjuwb"></tbody><thead id="pjuwb"><strike id="pjuwb"></strike></thead><th id="pjuwb"><dl id="pjuwb"><wbr id="pjuwb"></wbr></dl></th><dl id="pjuwb"><strong id="pjuwb"></strong></dl><abbr id="pjuwb"><noframes id="pjuwb"><noscript id="pjuwb"></noscript></noframes></abbr><td id="pjuwb"><ol id="pjuwb"></ol></td><li id="pjuwb"><noscript id="pjuwb"><abbr id="pjuwb"></abbr></noscript></li><small id="pjuwb"><bdo id="pjuwb"><nav id="pjuwb"></nav></bdo></small><style id="pjuwb"></style><optgroup id="pjuwb"><table id="pjuwb"></table></optgroup><center id="pjuwb"><tr id="pjuwb"><dfn id="pjuwb"></dfn></tr></center><th id="pjuwb"></th><u id="pjuwb"></u><tfoot id="pjuwb"><legend id="pjuwb"><i id="pjuwb"></i></legend></tfoot><mark id="pjuwb"></mark><meter id="pjuwb"></meter><nav id="pjuwb"></nav><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><nobr id="pjuwb"></nobr><sub id="pjuwb"><th id="pjuwb"><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem></th></sub><thead id="pjuwb"><sub id="pjuwb"></sub></thead><ul id="pjuwb"><address id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></address></ul><dfn id="pjuwb"></dfn><pre id="pjuwb"></pre><input id="pjuwb"><cite id="pjuwb"><fieldset id="pjuwb"></fieldset></cite></input><u id="pjuwb"><form id="pjuwb"><u id="pjuwb"></u></form></u><kbd id="pjuwb"><em id="pjuwb"><mark id="pjuwb"></mark></em></kbd><tr id="pjuwb"></tr><del id="pjuwb"><form id="pjuwb"><address id="pjuwb"></address></form></del><tfoot id="pjuwb"><legend id="pjuwb"><ol id="pjuwb"><dl id="pjuwb"></dl></ol></legend></tfoot><menu id="pjuwb"><nobr id="pjuwb"><th id="pjuwb"><nobr id="pjuwb"></nobr></th></nobr></menu><fieldset id="pjuwb"></fieldset><pre id="pjuwb"><blockquote id="pjuwb"><samp id="pjuwb"></samp></blockquote></pre><xmp id="pjuwb"><sup id="pjuwb"><pre id="pjuwb"></pre></sup></xmp><span id="pjuwb"><progress id="pjuwb"></progress></span><font id="pjuwb"></font><var id="pjuwb"><abbr id="pjuwb"></abbr></var><strong id="pjuwb"><label id="pjuwb"><i id="pjuwb"><legend id="pjuwb"></legend></i></label></strong><tr id="pjuwb"><em id="pjuwb"><em id="pjuwb"><output id="pjuwb"></output></em></em></tr><thead id="pjuwb"><strike id="pjuwb"></strike></thead> <acronym id="pjuwb"></acronym><i id="pjuwb"></i><tt id="pjuwb"></tt><rt id="pjuwb"><source id="pjuwb"><rt id="pjuwb"></rt></source></rt><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike><del id="pjuwb"></del><font id="pjuwb"><output id="pjuwb"><ins id="pjuwb"><output id="pjuwb"></output></ins></output></font><kbd id="pjuwb"><tr id="pjuwb"><kbd id="pjuwb"></kbd></tr></kbd><pre id="pjuwb"><sup id="pjuwb"><delect id="pjuwb"><samp id="pjuwb"></samp></delect></sup></pre><samp id="pjuwb"></samp><track id="pjuwb"></track><tr id="pjuwb"></tr><center id="pjuwb"></center><fieldset id="pjuwb"></fieldset><i id="pjuwb"></i><td id="pjuwb"></td><rt id="pjuwb"></rt><object id="pjuwb"></object><pre id="pjuwb"><progress id="pjuwb"><sub id="pjuwb"><thead id="pjuwb"></thead></sub></progress></pre><kbd id="pjuwb"><tr id="pjuwb"><option id="pjuwb"></option></tr></kbd><output id="pjuwb"><ins id="pjuwb"></ins></output><ol id="pjuwb"></ol><source id="pjuwb"></source><strong id="pjuwb"></strong><ruby id="pjuwb"></ruby><sub id="pjuwb"><meter id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></meter></sub><pre id="pjuwb"></pre><center id="pjuwb"></center><tr id="pjuwb"><tbody id="pjuwb"><xmp id="pjuwb"><dd id="pjuwb"></dd></xmp></tbody></tr><video id="pjuwb"></video><pre id="pjuwb"></pre><form id="pjuwb"><optgroup id="pjuwb"></optgroup></form><samp id="pjuwb"></samp><kbd id="pjuwb"></kbd><strong id="pjuwb"><option id="pjuwb"></option></strong><object id="pjuwb"></object><abbr id="pjuwb"><noframes id="pjuwb"><abbr id="pjuwb"></abbr></noframes></abbr><ul id="pjuwb"><del id="pjuwb"><button id="pjuwb"><pre id="pjuwb"></pre></button></del></ul><abbr id="pjuwb"></abbr><strong id="pjuwb"><code id="pjuwb"><strong id="pjuwb"></strong></code></strong><option id="pjuwb"></option><optgroup id="pjuwb"><bdo id="pjuwb"><code id="pjuwb"></code></bdo></optgroup><mark id="pjuwb"><em id="pjuwb"><font id="pjuwb"></font></em></mark><acronym id="pjuwb"><code id="pjuwb"></code></acronym><dl id="pjuwb"></dl><em id="pjuwb"></em><object id="pjuwb"><input id="pjuwb"><object id="pjuwb"></object></input></object><output id="pjuwb"><dd id="pjuwb"></dd></output><option id="pjuwb"><button id="pjuwb"><option id="pjuwb"></option></button></option><small id="pjuwb"></small></div> <a href="http://kinghongs.com" target="_blank">国内精品久久久久久久果冻传媒</a>| <a href="http://www47755.com" target="_blank">欧美专区18</a>| <a href="http://038226.com" target="_blank">久久九九热免费视频</a>| <a href="http://133969.com" target="_blank">亚洲免费中文</a>| <a href="http://huabiseeds.com" target="_blank">久久av二区</a>| <a href="http://baidijs.com" target="_blank">欧美在线观看你懂的</a>| <a href="http://666888123.com" target="_blank">性色一区二区三区</a>| <a href="http://jxyptsw.com" target="_blank">欧美三级资源在线</a>| <a href="http://xhtd688.com" target="_blank">久久精品72免费观看</a>| <a href="http://92ye.com" target="_blank">欧美一区二区三区四区在线观看</a>| <a href="http://hjk56.com" target="_blank">亚洲欧美视频一区</a>| <a href="http://4hup23.com" target="_blank">欧美伦理一区二区</a>| <a href="http://9585865.com" target="_blank">亚洲欧美视频一区二区三区</a>| <a href="http://cfqcgw.com" target="_blank">欧美一区二区成人6969</a>| <a href="http://cuucs.com" target="_blank">亚洲欧美日韩成人</a>| <a href="http://023nszz.com" target="_blank">久久综合色综合88</a>| <a href="http://neudlac.com" target="_blank">国产精品福利片</a>| <a href="http://www433ad.com" target="_blank">国产久一道中文一区</a>| <a href="http://remenkan.com" target="_blank">国产欧美精品va在线观看</a>| <a href="http://gzxyh88.com" target="_blank">免费日韩成人</a>| <a href="http://9xxpp.com" target="_blank">亚洲精品国精品久久99热一</a>| <a href="http://1188188.com" target="_blank">久久综合九色九九</a>| <a href="http://687989.com" target="_blank">亚洲精品欧美</a>| <a href="http://pgd857.com" target="_blank">亚洲高清视频在线观看</a>| <a href="http://www77711.com" target="_blank">久久综合给合</a>| <a href="http://sxhrsmjj.com" target="_blank">欧美亚洲一区</a>| <a href="http://7ccdd.com" target="_blank">免费在线亚洲</a>| <a href="http://5767j.com" target="_blank">亚洲精品欧美日韩专区</a>| <a href="http://ykk7.com" target="_blank">亚洲欧美大片</a>| <a href="http://www-tk8899.com" target="_blank">欧美中文字幕久久</a>| <a href="http://xiehaihua.com" target="_blank">亚洲私人影院在线观看</a>| <a href="http://7878168.com" target="_blank">亚洲自拍都市欧美小说</a>| <a href="http://www18818.com" target="_blank">亚洲免费人成在线视频观看</a>| <a href="http://7115866.com" target="_blank">久久精品一区蜜桃臀影院</a>| <a href="http://77xyc77.com" target="_blank">亚洲区一区二区三区</a>| <a href="http://4430x.com" target="_blank">亚洲一级片在线看</a>| <a href="http://toomicsvip.com" target="_blank">久久久国产亚洲精品</a>| <a href="http://maokk77.com" target="_blank">欧美高潮视频</a>| <a href="http://www-33tt.com" target="_blank">久久av二区</a>| <a href="http://www-477499.com" target="_blank">欧美日韩国产天堂</a>| <a href="http://1235656.com" target="_blank">久久久久久夜</a>| <a href="http://www18bbav.com" target="_blank">这里是久久伊人</a>| <a href="http://483134.com" target="_blank">在线亚洲欧美</a>| <a href="http://www888x.com" target="_blank">久久婷婷久久一区二区三区</a>| <a href="http://995688.com" target="_blank">久久成人久久爱</a>| <a href="http://13751144594.com" target="_blank">欧美二区视频</a>| <a href="http://xb735.com" target="_blank">久久精品国产99精品国产亚洲性色 </a>| <a href="http://hwgjcm.com" target="_blank">久久午夜激情</a>| <a href="http://2996611.com" target="_blank">欧美日韩一区二区视频在线</a>| <a href="http://7v51.com" target="_blank">久久精品理论片</a>| <a href="http://227c7.com" target="_blank">国产精品www</a>| <a href="http://ndr666.com" target="_blank">亚洲国产精品ⅴa在线观看</a>| <a href="http://booyitech.com" target="_blank">午夜精品一区二区三区在线播放</a>| <a href="http://ahhyez.com" target="_blank">老牛国产精品一区的观看方式</a>| <a href="http://jiujiuri8.com" target="_blank">亚洲欧洲精品一区二区</a>| <a href="http://www33444.com" target="_blank">91久久精品国产</a>| <a href="http://4480vv.com" target="_blank">亚洲欧美日韩一区二区在线</a>| <a href="http://km43yy.com" target="_blank">亚洲免费在线</a>| <a href="http://yw3329.com" target="_blank">亚洲尤物精选</a>| <a href="http://ccc36-com.com" target="_blank">欧美精品国产</a>| <a href="http://8847m.com" target="_blank">国产精品夜夜夜一区二区三区尤</a>| <a href="http://fjnexpo.com" target="_blank">免费成人在线观看视频</a>| <a href="http://127mingdao.com" target="_blank">一区二区三区四区五区精品视频</a>| <a href="http://teqmeta.com" target="_blank">夜夜嗨av一区二区三区</a>| <a href="http://b1768.com" target="_blank">久久久人成影片一区二区三区观看 </a>| <a href="http://carboarm.com" target="_blank">国产精品成人免费精品自在线观看</a>| <a href="http://bjayj.com" target="_blank">亚洲精品社区</a>| <a href="http://111491.com" target="_blank">欧美激情精品久久久久久变态</a>| <a href="http://lukushe.com" target="_blank">最新日韩av</a>| <a href="http://by99969.com" target="_blank">欧美日韩一二三区</a>| <a href="http://7282789.com" target="_blank">亚洲美女网站</a>| <a href="http://2220004.com" target="_blank">欧美午夜精品理论片a级大开眼界 欧美午夜精品理论片a级按摩 </a>| <a href="http://jyboke.com" target="_blank">亚洲黄色av一区</a>| <a href="http://220fuke.com" target="_blank">久久久久久9999</a>| <a href="http://xvideoav99.com" target="_blank">久久xxxx</a>| <a href="http://xingda-sh.com" target="_blank">国产亚洲成人一区</a>| <a href="http://3233328.com" target="_blank">国产精品欧美一区喷水</a>| <a href="http://3451215.com" target="_blank">亚洲国产专区</a>| <a href="http://zooxoft.com" target="_blank">亚洲精品综合精品自拍</a>| <a href="http://www-293456.com" target="_blank">免费观看久久久4p</a>| <a href="http://710557.com" target="_blank">亚洲婷婷在线</a>| <a href="http://3s3v.com" target="_blank">欧美制服丝袜第一页</a>| <a href="http://fengxinye.com" target="_blank">国产精品福利久久久</a>| <a href="http://qiruiwangluo.com" target="_blank">性欧美超级视频</a>| <a href="http://1390744.com" target="_blank">亚洲免费一级电影</a>| <a href="http://49234c.com" target="_blank">国产精品一区在线观看你懂的</a>| <a href="http://390642.com" target="_blank">久久精品夜色噜噜亚洲aⅴ</a>| <a href="http://012488.com" target="_blank">午夜精品一区二区三区在线播放</a>| <a href="http://9955377.com" target="_blank">好看的日韩av电影</a>| <a href="http://www18bbav.com" target="_blank">亚洲日韩中文字幕在线播放</a>| <a href="http://998609.com" target="_blank">亚洲黄一区二区三区</a>| <a href="http://scqike.com" target="_blank">欧美激情精品久久久久久大尺度</a>| <a href="http://9966k.com" target="_blank">亚洲全黄一级网站</a>| <a href="http://116016.com" target="_blank">亚洲一区免费看</a>| <a href="http://sdjinchuan.com" target="_blank">欧美日韩一区二区在线观看</a>| <a href="http://49vvvv.com" target="_blank">亚欧成人在线</a>| <a href="http://zyjxyx.com" target="_blank">亚洲视频专区在线</a>| <a href="http://5xxm.com" target="_blank">亚洲第一视频网站</a>| <a href="http://5101h.com" target="_blank">亚洲激情综合</a>| <a href="http://heyzo1031.com" target="_blank">国产一区二区三区不卡在线观看</a>| <a href="http://shenshijuesheying.com" target="_blank">国产精品丝袜久久久久久app</a>| <a href="http://xsjgxx.com" target="_blank">久久精品国产精品</a>| <a href="http://miandoctor.com" target="_blank">另类天堂视频在线观看</a>| <a href="http://azaz7.com" target="_blank">免费在线欧美视频</a>| <a href="http://free18teen.com" target="_blank">亚洲一区久久</a>| <a href="http://eguge.com" target="_blank">欧美亚洲网站</a>| <a href="http://fuwu56.com" target="_blank">国产日本精品</a>| <a href="http://cm1-100.com" target="_blank">免费黄网站欧美</a>| <a href="http://wyy66.com" target="_blank">欧美午夜精品久久久久免费视</a>| <a href="http://z169.com" target="_blank">亚洲欧美激情在线视频</a>| <a href="http://7345jj.com" target="_blank">欧美成人一区二区三区</a>| <a href="http://jybiotek.com" target="_blank">欧美性生交xxxxx久久久</a>| <a href="http://gdjuba.com" target="_blank">久久国产一区</a>| <a href="http://xxxbobba.com" target="_blank">国产精品成人v</a>| <a href="http://430390.com" target="_blank">美女尤物久久精品</a>| <a href="http://www-9694.com" target="_blank">国产欧美一区二区三区国产幕精品</a>| <a href="http://439368.com" target="_blank">久久国产精品久久久久久电车</a>| <a href="http://226600b.com" target="_blank">欧美国产精品专区</a>| <a href="http://y4088.com" target="_blank">欧美与黑人午夜性猛交久久久</a>| <a href="http://www-4890.com" target="_blank">午夜精品久久久久久久99樱桃</a>| <a href="http://77mcn.com" target="_blank">最近看过的日韩成人</a>| <a href="http://wwwcc7777.com" target="_blank">一卡二卡3卡四卡高清精品视频</a>| <a href="http://nxhjzddata.com" target="_blank">亚洲国产精品99久久久久久久久</a>| <a href="http://621768.com" target="_blank">99精品国产99久久久久久福利</a>| <a href="http://621768.com" target="_blank">亚洲国产小视频在线观看</a>| <a href="http://7782y.com" target="_blank">宅男66日本亚洲欧美视频</a>| <a href="http://kuaikan97.com" target="_blank">亚洲精品一区二区三区蜜桃久</a>| <a href="http://0999555.com" target="_blank">亚洲——在线</a>| <a href="http://www-90422.com" target="_blank">国产婷婷一区二区</a>| <a href="http://988tz.com" target="_blank">亚洲伊人久久综合</a>| <a href="http://www-132377.com" target="_blank">久久久久99精品国产片</a>| <a href="http://ccc3636.com" target="_blank">亚洲美女免费精品视频在线观看</a>| <a href="http://7n7l.com" target="_blank">亚洲影院色在线观看免费</a>| <a href="http://555888666.com" target="_blank">91久久夜色精品国产网站</a>| <a href="http://8x1080x.com" target="_blank">久久久久国产精品午夜一区</a>| <a href="http://7redy.com" target="_blank">午夜精品久久久久久久</a>| <a href="http://zzztt04.com" target="_blank">国产精品国产三级国产aⅴ浪潮</a>| <a href="http://hhsj31.com" target="_blank">欧美黄网免费在线观看</a>| <a href="http://339505.com" target="_blank">亚洲第一精品夜夜躁人人爽 </a>| <a href="http://chainhuayu.com" target="_blank">影音欧美亚洲</a>| <a href="http://spardec.com" target="_blank">亚洲欧美另类在线观看</a>| <a href="http://7213523.com" target="_blank">香蕉国产精品偷在线观看不卡</a>| <a href="http://56myf.com" target="_blank">欧美 日韩 国产一区二区在线视频 </a>| <a href="http://m10669.com" target="_blank">亚洲经典在线看</a>| <a href="http://whdzjc.com" target="_blank">欧美一级大片在线观看</a>| <a href="http://483134.com" target="_blank">久久精品日韩</a>| <a href="http://sd-12530.com" target="_blank">国产精品视频你懂的</a>| <a href="http://5773000.com" target="_blank">亚洲自拍另类</a>| <a href="http://http456446.com" target="_blank">亚洲免费一在线</a>| <a href="http://621765.com" target="_blank">欧美天天在线</a>| <a href="http://www-14333.com" target="_blank">亚洲欧美一区二区精品久久久 </a>| <a href="http://tuokuba520.com" target="_blank">美女视频黄免费的久久</a>| <a href="http://329374.com" target="_blank">国产亚洲a∨片在线观看</a>| <a href="http://004ttt.com" target="_blank">欧美一区二区三区免费观看 </a>| <a href="http://9906w.com" target="_blank">亚洲免费在线电影</a>| <a href="http://4534com.com" target="_blank">国产日韩欧美成人</a>| <a href="http://3dxxoo.com" target="_blank">午夜久久一区</a>| <a href="http://joy-learn.com" target="_blank">模特精品裸拍一区</a>| <a href="http://www87bbw.com" target="_blank">精东粉嫩av免费一区二区三区</a>| <a href="http://xjksrbh.com" target="_blank">久久精品卡一</a>| <a href="http://022291.com" target="_blank">欧美电影美腿模特1979在线看</a>| <a href="http://039658.com" target="_blank">国产精品久久久一区麻豆最新章节</a>| <a href="http://0061366.com" target="_blank">亚洲一区二区三区在线播放</a>| <a href="http://874805.com" target="_blank">欧美成人免费小视频</a>| <a href="http://www-11688.com" target="_blank">日韩亚洲在线观看</a>| <a href="http://6623555.com" target="_blank">99精品视频一区</a>| <a href="http://yw133777.com" target="_blank">国产精品美女久久久浪潮软件</a>| <a href="http://y1bbs.com" target="_blank">亚洲视频第一页</a>| <a href="http://junhuatesu.com" target="_blank">亚洲自拍偷拍网址</a>| <a href="http://961318.com" target="_blank">一区免费观看</a>| <a href="http://yada-jg.com" target="_blank">中文一区在线</a>| <a href="http://3374com.com" target="_blank">欧美a级在线</a>| <a href="http://480192.com" target="_blank">亚洲日本无吗高清不卡</a>| <a href="http://lysyfls.com" target="_blank">国产精品久久久久久久午夜</a>| <a href="http://huayoue.com" target="_blank">亚洲深夜影院</a>| <a href="http://jlkcjz.com" target="_blank">欧美大片在线影院</a>| <a href="http://8111357.com" target="_blank">99精品欧美</a>| <a href="http://music444.com" target="_blank">国产亚洲精品久久久久婷婷瑜伽</a>| <a href="http://0855dyw.com" target="_blank">欧美一级电影久久</a>| <a href="http://caogb.com" target="_blank">日韩视频在线播放</a>| <a href="http://4y9k.com" target="_blank">久久国产欧美</a>| <a href="http://378682.com" target="_blank">亚洲一级特黄</a>| <a href="http://jpqueyou.com" target="_blank">伊人成年综合电影网</a>| <a href="http://507139.com" target="_blank">欧美日在线观看</a>| <a href="http://wansilv.com" target="_blank">欧美在线观看一二区</a>| <a href="http://taoseav8.com" target="_blank">激情亚洲成人</a>| <a href="http://yymh1056.com" target="_blank">免费成年人欧美视频</a>| <a href="http://woaigougou.com" target="_blank">好吊视频一区二区三区四区</a>| <a href="http://2312138.com" target="_blank">欧美在线免费视屏</a>| <a href="http://xtgoldsky.com" target="_blank">久久久久国产精品一区</a>| <a href="http://www47777.com" target="_blank">欧美黄网免费在线观看</a>| <a href="http://163263.com" target="_blank">性8sex亚洲区入口</a>| <a href="http://xianconnector.com" target="_blank">精品91视频</a>| <a href="http://492541.com" target="_blank">国产日韩一区二区三区在线</a>| <a href="http://www-699603.com" target="_blank">久久久夜精品</a>| <a href="http://niu96.com" target="_blank">亚洲一区二区三区三</a>| <a href="http://05511253.com" target="_blank">欧美国产成人精品</a>| <a href="http://9e67.com" target="_blank">欧美呦呦网站</a>| <a href="http://32tun.com" target="_blank">亚洲视频免费</a>| <a href="http://hankanzhan.com" target="_blank">亚洲成色www久久网站</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>