<html>
<body style="margin:10px;">
<canvas id="myCanvas" width="500" height="500" style="border:1px solid #d3d3d3;">
</canvas>
</body>
<script language="javascript" type="text/javascript">
var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');
var centerX = 400;
var centerY = 400;
var radius = .5;
context.beginPath(400,400);
context.arc(centerX, centerY, radius, 0, 2 * Math.PI, false);
context.fillStyle = 'blue';
context.fill();
context.lineWidth = 1;
context.strokeStyle = '#003300';
context.stroke();
context.beginPath();
context.moveTo(50, 250);
context.bezierCurveTo(50, 250, 50, 250, 50, 250);
context.bezierCurveTo(90, 210, 90, 210, 90, 210);
context.bezierCurveTo(130, 90, 130, 90, 130, 90);
context.bezierCurveTo(260, 240, 260, 240, 260, 240);
context.bezierCurveTo(255, 400, 255, 400, 255, 400);
context.closePath();
context.lineWidth = 1;
context.strokeStyle = 'green';
context.stroke();
</script>
\t
\t
\t
\t
</html>
第一次张贴在这里,但这个网站已经帮助了我很多与其他灰色地带我有!
我想确定从画布上的点到形状边缘的距离。形状将是不规则的,例如,如果它的三角形我不认为如果距离公式超出三角形的边缘,它将不起作用。
我有点沮丧,因为这可能是我的项目的垮台。任何开放的想法,将不胜感激!
谢谢
编辑:这里就是我说的,在这个例子中,我想知道这是多少像素从共同ORD 400,400对象的最近点的例子。但对于我的项目,无论这个点在哪里,我都希望能够测量到物体的最近点。
我知道这是很多要问,但我想我会给它一个镜头!
感谢您提前回复!
形状是否都是多边形 - 由线段组成?当你说“距离”时,你的意思是指形状还是别的什么?如果对两者都是肯定的,你可以测试多边形的每一条线段并[找到距离该点最小的距离](http:// stackoverflow。COM /问题/ 29021887 /拖拽点-沿着矢量与 - 小鼠/ 29023665#29023665)。 – markE
边缘x,y坐标将根据所使用的多边形和画布方法而变化....您可以发布代码示例吗? – KpTheConstructor
据我所知(在所有诚实中有点生锈),因为Canvas使用光栅(像素)绘图,所以一旦你画出一个形状就会被遗忘,当然,你可以比较每个像素的颜色,但这将是昂贵的。最好的方法是跟踪你画到画布上的每一个形状,并与这些形状进行比较,至于数学背后的真正取决于你的使用情况 –