[英]SVG drag elements on the edges of the path
我具有如所附圖像1中所述的路徑,我想在繪制路徑的邊緣上拖放另一個元素(如四舍五入的紅色),因此最后我想將黑色的紅色標記的元素拖動到是路徑邊緣的線,不在路徑內部,現在我可以在路徑的內部和外部移動,但我只想位於路徑的邊界上
所以在這里,我在mouseMove
函數和select
案例svgedit.compiled.js上自定義了以下代碼
if (path_child == 'path') {
var line_rotate = 90;
if (group_w_d == "drag_drop_D") {
var test = 'rotate(' + line_rotate + ',' + line_pt.x + ',' + line_pt.y + ') translate(' + trans_x + ',' + line_pt.y + ') scale(' + width + ',' + height + ')';
} else {
var test = 'rotate(' + line_rotate + ',' + line_pt.x + ',' + line_pt.y + ') translate(' + line_pt.x + ',' + line_pt.y + ') scale(' + width + ',' + height + ')';
}
selectedElements[0].setAttribute('transform', test);
var cls = selectedElements[0].getAttribute('class');
//alert(cls);
$('.' + cls).each(function() {
$(this).attr('transform', test)
});
}
例如 ,這是我想要的小提琴鏈接示例 ,在這里我們可以將橢圓移動到所需路徑上的任意位置,但我希望它位於路徑元素的邊緣
編輯:例如,假設我們正在使用矩形創建一個房間,並且在該房間中我們必須修復門或窗戶,如標記為紅色的圓形,因此我們可以沿矩形的所有位置移動路徑,但僅應在沒有內部的邊緣rect
或外rect
,是沒有問題的它我們就照辦了,
但是現在我們想將牆壁分割為延伸的牆壁,因此我們將rect
轉換為path
之后,將門或窗戶不沿着path
的邊緣移動,而不是將門移動到SVG-EDIT
工作區域的任何位置, SVG-EDIT
在這里我的門窗不是g
ellipse
,所以我知道橢圓形只有cx,cy和g
可以進行transform
所以不清楚如何做到這一點,我希望這會有意義
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.