我试图通过使用Angular移动鼠标来绘制svg路径,但我无法完成此操作,想法是通过跟随鼠标绘制路径。我如何在Angular中实现这一目标?我无法定位我的svg元素以开始绘制路径。下面是我的组件代码,
ngOnInit() {
this.svgPath = this.dataContainer.nativeElement;
};
handleMove(ev){
svgPath = createSvgElement("path");
svgPath.setAttribute("fill", "none");
svgPath.setAttribute("shape-rendering", "geometricPrecision");
svgPath.setAttribute("stroke-linejoin", "round");
svgPath.setAttribute("stroke", "#000000");
svgPath.setAttribute("d", "M" + ev.clientX + "," + ev.clientY);
}
ant模板是:
<ion-content no-bounce>
<div id="dataContainer" #dataContainer></div>
</ion-content>
答案 0 :(得分:0)
我认为SVG(矢量图形)不适合用鼠标绘制,因为你必须定义&#34;路径&#34;作为检查点,还可以处理它是直线还是曲线或贝塞尔曲线等。 但您可以执行以下操作:
mouse.x = event.clientX;
mouse.y = event.clientY;
mouse = mouse.matrixTransform(mainSVG.getScreenCTM().inverse());
&#13;
但要做具体细节,你需要真正决定你想要绘制什么(比如曲线与线等),因为再次向量需要方向(绘制线条的点)。
否则你最好的解决方案是html canvas位图绘制。