首页 > 解决方案 > AS3 如何根据用户用鼠标画线的位置找到贝塞尔曲线的控制点

问题描述

我正在尝试创建一条贝塞尔曲线,其中鼠标首先单击的起点和鼠标释放的终点。控制点应该是距离起点和终点最远的点,有没有办法在不将所有鼠标位置存储在数组中的情况下做到这一点。

我试过只找到最右边或最左边的点,但我意识到当它从左到右绘制时这不起作用(看到最远的点是向上或向下)我可以尝试同时实现这两个但我不是确定这会很好,因为终点通常是最远的点

标签: actionscript-3bezier

解决方案


使用这种方法,您肯定需要将鼠标位置存储在一个数组中。

想象一下点击屏幕的右中,然后移动鼠标大致向后画两个 W,然后在屏幕的左中松开鼠标。

显然,控制点应该在 W 的底部点之一上,但是哪一个呢?您必须测量起点和终点与每个候选人之间的距离,以便确定真正最远的点在哪里。

建议:拥有一种明确声明控制点的机制可能会有所帮助。也许单击一次以设置控制点,然后单击并拖动以定义曲线的端点?或者跟踪画布上的点击:第一个是起点,第二个是控制点,第三个是终点。根据项目的限制,可能有很多选择。


推荐阅读