Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript KineticJS-使用鼠标自由绘制_Javascript_Jquery_Canvas_Kineticjs - Fatal编程技术网

Javascript KineticJS-使用鼠标自由绘制

Javascript KineticJS-使用鼠标自由绘制,javascript,jquery,canvas,kineticjs,Javascript,Jquery,Canvas,Kineticjs,我正在构建一个画布绘制工具,用户只需拖动鼠标即可在画布上绘制。据我所知,排队是做这项工作的最佳方式。因此,在鼠标按下时,我创建一个KineticJS线条对象,当用户拖动时,我在最后一个鼠标位置和当前位置之间添加一个点。注意,我只有一个具有多个点的线对象 当用户释放鼠标时,线条就完成了,每当您再次单击以绘制更多线条时,我都会创建一个新的线条对象 这样做的问题是,如果要绘制文本,请说“我的名字是x”,这将产生许多线条对象,每个字符1个(2个代表“x”和“i”) 有更好的方法吗?我的想法是只有一个直线

我正在构建一个画布绘制工具,用户只需拖动鼠标即可在画布上绘制。据我所知,排队是做这项工作的最佳方式。因此,在鼠标按下时,我创建一个KineticJS线条对象,当用户拖动时,我在最后一个鼠标位置和当前位置之间添加一个点。注意,我只有一个具有多个点的线对象

当用户释放鼠标时,线条就完成了,每当您再次单击以绘制更多线条时,我都会创建一个新的线条对象

这样做的问题是,如果要绘制文本,请说“我的名字是x”,这将产生许多线条对象,每个字符1个(2个代表“x”和“i”)

有更好的方法吗?我的想法是只有一个直线对象,在mousedown中,您只需不从上一个位置添加直线,然后拖动即可。但我不认为KineticJS线支持这一点


因此,基本上,我可以改进我让用户绘制的方式吗?

您当前的设计是使用1-2条定义一个字母的多段线

canvas和Kinetic都可以在性能落后之前支持一整段字符

如果您希望整个句子只有一个定义,可以使用自定义的动能.Shape

使用Shape,您可以完全访问包装的画布上下文。您可以使用该上下文来实现第二个想法——使用单个context.path通过保存的moveTo和lineTo命令集绘制句子


就我个人而言,我会使用您当前的设计(每个字符1-2条多段线),因为性能很好,您可以获得更多的灵活性。(例如,如果您希望以不同的颜色绘制人名,则在当前设计中更容易)。

您当前的设计是使用1-2条定义一个字母的多段线

canvas和Kinetic都可以在性能落后之前支持一整段字符

如果您希望整个句子只有一个定义,可以使用自定义的动能.Shape

使用Shape,您可以完全访问包装的画布上下文。您可以使用该上下文来实现第二个想法——使用单个context.path通过保存的moveTo和lineTo命令集绘制句子


就我个人而言,我会使用您当前的设计(每个字符1-2条多段线),因为性能很好,您可以获得更多的灵活性。(例如,如果您想在当前的设计中以不同的颜色绘制人名,则更容易)。

您完成绘制工具了吗?如果是这样的话,你能发布一个链接吗?你完成你的绘画工具了吗?如果是的话,你能发一个链接吗?