单击时如何移动画布图形
How move a canvas figure when clicked?
我在画布上有一个五边形图形,我想点击一下就把它移动到鼠标所在的位置。
代码
<canvas id="fld" width="1000px" height="800"></canvas>
<script type="text/javascript"><!--
onload = function() { draw(); };
function draw() {
var canvas = document.getElementById('fld');
if ( ! canvas || ! canvas.getContext ) {return false;}
var ctx = canvas.getContext('2d');
//Pentagon
ctx.beginPath();
ctx.strokeStyle = 'rgb(255, 0, 0)';
ctx.moveTo(100,10);
for (var i=1;i<=5; ++i) {
th=i * 2 * Math.PI/5;
x=100+90*Math.sin(th);
y=100-90*Math.cos(th);
ctx.lineTo(x,y);
}
ctx.stroke();
ctx.beginPath();
ctx.arc(900, 60, 40, 0, 2 * Math.PI, false);
ctx.fillStyle = "rgb(255, 0, 0)";
ctx.fill();
ctx.strokeStyle = "black";
ctx.stroke();
}
</script>
您只需要做一些更改就可以了。
首先,您应该更改draw()函数,使其具有两个参数,即图形将绘制的X和Y位置。接下来,您需要更改您使用的硬编码值,使它们基于传递的X和Y值。
其次,您应该向画布添加一个onclick处理程序。当您收到单击事件时,您可以获得单击鼠标的画布的X坐标和Y坐标。
然后,您可以清除画布,并用鼠标单击X和Y调用更新的绘图功能。
查找onclick处理程序,了解按下按钮时获取鼠标位置的方法。你必须使用addEventListener来附加点击处理程序,这样你的函数就可以将触发它的事件传递给它。然后你可以从事件对象中提取点击的单词。
相关文章:
- 有没有一个javascript图形绘制库可以进行气球树布局
- 如何在d3上的图形中添加放大和缩小按钮
- 如何在React Native中绘制图形
- 删除图形和数字之间的连字符(-)符号
- 在arcgis javascript中手动添加图形层的图例
- Javascript图形布局引擎
- 来自mysql的动态值用于html代码点火器视图中的图形
- Javascript图形可视化工具包,具有高性能(500-1000个节点)
- 标签的rggraph问题Above未出现在第二个图形创建中
- Facebook:当发布期望对象引用时显示打开的图形对话框
- NVD3.js多图形,具有固定的x轴和y轴
- D3.js强制布局带有外部数据的图形空白
- 使用Javascript的图形编辑器
- 将两个图形(饼图和条形图)并排对齐::d3-js
- 动态Facebook开放式图形标记-javascript
- 通过变量将数据添加到图形中
- 没有使用Highcharts显示任何图形
- 能够在Highcharts中看到值,但不能看到图形
- 来自facebook图形API的响应中出错
- 将JavaScript图形和图表转换为图像