vue canvas實現簡易畫板

2022-09-14 15:15:18 字數 2237 閱讀 9439

需求:預設後台返回的資料渲染到畫布上,然後使用者可以編輯重新畫線,並且可以點選要移除的線條進行移除。

現在做的互動是選中需要移除的線條高亮顯示,然後雙擊進行移除。

id="mycanvas"

width="600px"

height="380px"

class="canvas"

@mousedown="drawlinemousedown($event)"

@mousemove="drawlinemousemove($event)"

@mouseup="drawfinish()"

@click="select($event)"

@dblclick="deleteline($event)">

new vue(,

],contour: [,,

,,,],

junctions: [,,

]}],tempoints:,

isdraw:false,

idx:0,

classname:"",

isselect:""

},mounted:function(),

methods: ,

//清屏

clearboard(),

//繪製基準線

drawbaseline(baseline) else if (i == baseline.length - 1) else }}

},//繪製輪廓線

drawcontour(contour){},

//畫線 junctions 多段線集合

drawline(junctions) else

ctx.moveto(points[j].x, points[j].y);

} else if (j == points.length - 1) else }}

}},//滑鼠按下

drawlinemousedown(e));

this.idx ++; }},

//滑鼠移動

//tempoints是儲存畫線的集合,junctions是預設返回的線+畫線的集合

drawlinemousemove(e));}}

}},//滑鼠抬起

drawfinish());

}this.idx = 0;

this.isdraw = false;}}

},//刪除線

deleteline(e)

this.isselect = "";

//清空畫板重新繪圖

ctx.clearrect(0, 0, canvasw, canvash);

this.drawbaseline(this.baseline);

this.drawcontour(this.contour);

this.drawline(this.junctions);}},

//選擇要刪除的線

select(e);

let result = this.pointinsegments(p,this.junctions);

//修改資料

this.isselect = result.index;

//清空畫板重新繪圖

ctx.clearrect(0, 0, canvasw, canvash);

this.drawbaseline(this.baseline);

this.drawcontour(this.contour);

this.drawline(this.junctions);}}

},//判斷是否選中線

pointinsegments(p, junctions) ;}}

}}}return ;

},isonline(p1, p2, p)

return false;

}else if (p1.x === p2.x)

return false;

}else; // 直線上的交叉點

if ((math.abs(p.x - pm.x) <= offset) && (math.abs(p.y - pm.y) <= offset))

}return false;}},

}});

canvas簡易畫板

window.getcomputedstyle 是乙個可以獲取當前元素所有最終使用的css屬性值。返回的是乙個css樣式宣告物件 object cssstyledeclaration 唯讀,而element.style能讀能寫。語法如下 var style window.getcomputedsty...

canvas簡易畫板

閒著無事,也學習一下html5,也要跟進時代嘛,否則就落伍了。這裡是乙個簡易的畫板,目前還沒有實現滑鼠移動時候的軌跡,只是捕獲滑鼠點下的座標作為起點,和滑鼠彈起的座標作為終點。畫圓形的時候滑鼠點下為原點的位置,滑鼠彈起的座標計算半徑。當中發現乙個問題,矩形邊框沒有實現,目前是用兩個矩形實現的邊框效果...

iOS 簡易的畫板

擷取制定view 將其轉成uiimage class func uiview uiimage 儲存到相簿 func showimage class drawview uiview required init coder adecoder nscoder 建立乙個拖動的手勢 func initgest...