为什么 canvas绘制物体的拖动没有CAD软件拖动物体的流畅,为什么?

作者站长头像
站长
· 阅读数 6

提问目的:因为公司有1个项目想把cad绘制画图的功能搬到web浏览器上,有1个难点问题,为什么canvas绘制物体的拖动没有CAD软件物体拖动的效果流畅?

比如都是在画布上绘制1个矩形,用鼠标拖动矩形快速移动,cad拖动矩形和鼠标图标几乎之间没有距离,同时移动。但在canvas上矩形和鼠标之间有一点距离,或叫延迟。就是眼睛能看到矩形要隔几毫秒再到鼠标的位置,请知道的大佬赐教一下。为什么 canvas绘制物体的拖动没有CAD软件拖动物体的流畅,为什么?

是软件开发语言的原因,还是有其他深层次的原因?比如说操作的底层对象不一样。1、cad软件是C语言编码2、canvas是javascript语言编码

回复
1个回答
avatar
test
2024-07-08

语言只是表面差异,计算机在执行代码的时候只认识01这样的二进制,所以代码需要编译成计算机可识别的二级制代码,像JS这样的解释性语言到最终机器可执行的语言之间工序较多,而像exe这样的执行程序本身就已经是编译过了的,也就是两种形式在真正代码运行的时候就已经不在一个起跑线了。如果JS能够在发布时像C/C++开发的应用一样编译成二进制执行文件给宿主运行,也就是两者的区别仅仅只是开发语言不一样,其他包括API什么的都跟C/C++开发时没差的话,那么性能表现应该也是没什么差的,语言只不过是更好的给人类看的,反正最后都是二进制。answer image而在图形渲染上,浏览器的渲染引擎是固定的,而应用程序就各种各样了,这在性能上又打了一个折扣,虽然在理论上同样的功能,web的性能是不如应用程序的,但是,在实际体验上不一定会差很多,要看多复杂。比如你说的矩形移动,我简单实现了一下并没有明显感知延迟,而且这还是没有使用webgl的情况下。CANVAS DEMO

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容