闇€瑕佸皢閭d簺杩斿洖缁欒€佸笀鐨勬暟瀛﹀嚱鏁拌繑鍥炪€備粠鍒濅腑鏁板寮€濮嬶紝鎴戜滑鎺ヨЕ鍒板悇绉嶇畻娉曞叕寮忥細涓夎鍑芥暟銆佸嬀鑲″畾鐞嗐€佹寮﹀畾鐞嗏€︹€︼紝鍐嶅埌楂樼瓑鏁扮殑寰Н鍒嗗拰绾挎€т唬鏁般€傚綋鎴戞垚涓轰竴鍚嶇▼搴忓憳鏃讹紝鎴戝彂鐜版垜鍑犱箮娌℃湁鐢ㄥ埌瀹冦€傞毦閬撴槸鎴戝啓鐨勪綆绾т唬鐮侊紵閭f垜涓嶆槸浣庣骇绋嬪簭鍛樺悧锛熷垢杩愮殑鏄紝鎴戞渶杩戝紑鍙戜簡涓€涓櫧鏉縎DK銆備粠鎵嬭冻鏃犳帾鍒版煡闃呮枃妗o紝閲嶆柊鎵惧洖浜嗙墿鐞嗗姩鐢汇€佷笁瑙掑嚱鏁颁互鍙婂悜閲忕煩闃靛彉鎹㈢瓑绛夛紝鎵€浠ュ€煎緱鎬濊€冪殑鏄紝濡備綍璁╀唬鐮佸彉寰楁洿楂樻晥锛屽簲璇ユ槸鎴戜滑涓嶆柇鎬濊€冪殑闂銆傚悓鏍锋槸涓€涓嚱鏁帮紝涓嶅悓鐨勫疄鐜版柟寮忎細鐩存帴褰卞搷杩愯閫熷害锛岄棿鎺ュ奖鍝嶇敤鎴蜂綋楠屻€傚垢杩愮殑鏄紝浜虹被宸茬煡鐨勬暟瀛﹀叕寮忓湪缂栫▼璇█涓兘鏈堿PI锛屽苟涓旀牴鎹笟鍔″拰浜у搧闇€姹傜殑澶嶆潅绋嬪害琛嶇敓鍑哄緢澶氱畻娉曪紝姣斿鍣0绠楁硶銆丩RU绠楁硶绛夌瓑銆傞偅涔堬紝浠婂ぉ鎴戜滑灏辨潵鐪嬬湅鐧芥澘SDK鏈夊摢浜涙娴嬬畻娉曞彲浠ヤ负鎴戜滑鐨勭櫧鏉縎DK璧嬭兘锛熷湪寮€濮嬩粖澶╃殑鍐呭涔嬪墠锛屾垜浠渶瑕佺煡閬擄紝涓庢暟瀛﹀潗鏍囩郴涓嶅悓鐨勬槸锛寃3c涓殑Y杞村潗鏍囩郴鏄悜涓嬬殑锛屽嵆鍚戜笅涓烘鏂瑰悜銆傪煄疓raphhitdetectionGraphhitdetectionGraphhitdetection鏄竴涓潪甯稿父鐢ㄧ殑鍔熻兘锛屾垜浠湪寰堝鍦烘櫙涓兘鑳界湅鍒板畠浠殑鈥滆韩褰扁€濓細鍦‥charts鎶樼嚎鍥句腑锛屽湪鐢绘澘搴旂敤涓€変腑涓€鏉$嚎锛屽湪鐢绘澘搴旂敤涓敤姗$毊鎿﹀伐鍏凤紝甯哥敤鐨勯€夋嫨鍏冪礌鐨勬娴嬫柟妗堟槸锛氫娇鐢–anvasRenderingContext2D涓婁笅鏂囧璞′腑鐨刬sPointInStroke鏂规硶鍒ゆ柇褰撳墠鍧愭爣鏄惁鍦ㄧ粯鍒剁殑杞ㄨ抗涓€備娇鐢–anvasRenderingContext2D涓婁笅鏂囧璞′腑鐨刧etImageData鏂规硶鏉ョ‘瀹欼mageData涓綋鍓嶅潗鏍囨墍鍦ㄥ儚绱犵殑alpha鍊笺€傚鏋滀笉涓?锛屽垯琛ㄧず褰撳墠鍍忕礌鏈夊浘鍍忚缁樺埗銆俢tx.isPointInStrokevarcanvas=document.getElementById("canvas");varctx=canvas.getContext("2d");ctx.rect(10,10,100,100);ctx.rect(50,50,100,100));ctx.stroke();console.log(ctx.isPointInStroke(10,10));//true浣嗘槸杩欎釜鏂规硶涔熸湁缂虹偣銆傚鏋滃悓鏃舵湁澶氫釜鍥惧舰锛屽垯鏃犳硶寰楀埌鐪熷疄鐨勭粨鏋溿€備緥濡傪煂帮細鍚屾牱鐨勪唬鐮侊紝绋嶅井淇敼涓€涓嬶紝褰撳墠鐢绘澘鏈変袱涓煩褰紝鎴戜滑闇€瑕佸垽鏂潗鏍?10,10)鏄惁鍦ㄧ敾鍑虹殑杞ㄨ抗涓婏紝寰椾笉鍒扮湡姝g殑缁撴灉锛屽洜涓烘垜浠笉鑳戒繚璇佸湪鍝噷浣跨敤beginPath鏄寚瀹氱殑銆倂arcanvas=document.getElementById("canvas");varctx=canvas.getContext("2d");ctx.rect(10,10,100,100);ctx.stroke();console.log(ctx.isPointInStroke(10,10));//truectx.beginPath();ctx.rect(50,50,100,100);ctx.stroke();console.log(ctx.isPointInStroke(10,10));//falseconsole.log(ctx.isPointInStroke(50,50));//true鎵€浠ヤ竴鑸殑鍋氭硶鏄細浣跨敤绂诲睆鐢绘澘锛岀敾涓€娆″浘褰紝鍒ゆ柇涓€娆★紝鎵€浠ヨ繖绉嶅仛娉曟瘮杈冭€楄祫婧愩€?/缁樺埗绗竴涓浘褰㈢敤浜庡垽鏂璿aroffscreenCanvas=document.createElement('canvas');constoffscreenCtx=offscreenCanvas.getContext('2d');ctx.rect(10,10,100,100);杩斿洖offscreenCtx.isPointInStroke(10,10);//true//缁樺埗绗簩涓浘褰㈣繘琛屽垽鏂璿aroffscreenCanvas=document.createElement('canvas');constoffscreenCtx=offscreenCanvas.getContext('2d');ctx.rect(50,50,100,100);杩斿洖offscreenCtx.isPointInStroke(50,50);//trueImageData鍍忕礌妫€娴嬩娇鐢–anvasRenderingContext2D.getImageData鑾峰彇鏌愪釜鍍忕礌ImageDatavarcanvas=document.getElementById("canvas");varctx=canvas.getContext("2d");ctx.rect(10,10,100,100);ctx.stroke();//鑾峰彇鍧愭爣10銆?0鎵€鍦ㄥ儚绱犵偣鐨剅gba鍊硷紝濡傛灉alpha鍊间笉涓?锛屽垯璇存槑璇ュ儚绱犵偣鏈夊浘褰㈢粯鍒秜arpixels=ctx.getImageData(10,10,1,1);//[绾€佺豢銆佽摑銆乤lpha]console.log(pixels[3]!==0);//鐩稿浜巆tx.isPointInStroke妫€娴嬫柟娉曚负true锛屾洿鎺ㄨ崘璇ユ柟娉曫煈嶏紝鍙渶瑕佽幏鍙栧綋鍓嶅儚绱犵偣锛屽垽鏂璦lpha鍊兼槸鍚︿负0鍗冲彲銆傪煉ュ浘褰㈢鎾炴娴嬩娇鐢ㄥ満鏅細娓告垙纰版挒锛氫縿缃楁柉鏂瑰潡娓告垙纰版挒锛?椋炴満灏忔父鎴?瀛愬脊鍑讳腑澶栨帴鐭╁舰鐨勫垽鏂柟娉曞垽鏂潯浠讹細涓や釜鐭╁舰宸︿笂瑙掔殑鍧愭爣鍜岃寖鍥淬€傚綋鐭╁舰A鍦ㄧ煩褰鍓嶉潰鏃讹紝鐭╁舰A宸︿笂瑙掔殑妯潗鏍?鐭╁舰A鐨勫搴?鐭╁舰B宸︿笂瑙掔殑妯潗鏍囷紝鍒欒〃绀虹煩褰鍜岀煩褰涓嶄細鍦▁杞存柟鍚戝彂鐢熺鎾烇紱鍚岀悊锛岀煩褰鐨勫乏涓婅y鍧愭爣+鐭╁舰A鐨勯珮搴?鐭╁舰B宸︿笂瑙掔殑y鍧愭爣琛ㄧず鐭╁舰A鍜岀煩褰鍦▂杞翠笂涓嶄細鍙戠敓纰版挒銆傚綋鐭╁舰B鍦ㄧ煩褰鍓嶉潰鏃讹紝鐭╁舰B宸︿笂瑙掔殑x鍧愭爣+鐭╁舰B鐨勫搴?鐭╁舰A宸︿笂瑙掔殑x鍧愭爣锛岃〃绀虹煩褰鍜岀煩褰涓嶄細鍦▁杞存柟鍚戠鎾烇紱鍚岀悊锛岀煩褰㈠鏋淏宸︿笂瑙掔殑y鍧愭爣+鐭╁舰B鐨勯珮搴?鐭╁舰A宸︿笂瑙掔殑y鍧愭爣锛屽垯璇存槑鐭╁舰A鍜岀煩褰鍦▂杞翠笂涓嶄細鍙戠敓纰版挒杞淬€?/浠ヤ笅4涓潯浠堕兘涓嶆弧瓒虫椂锛屼袱涓煩褰㈢浉浜unctioncheckRect(rectA,rectB){return!(rectA.x+rectA.width
