画布,负坐标:绘制从画布开始并继续下去的路径是不是不好?

Posted

技术标签:

【中文标题】画布,负坐标:绘制从画布开始并继续下去的路径是不是不好?【英文标题】:Canvas, negative coordinates: Is it bad to draw paths that start off canvas, and continue on?画布,负坐标:绘制从画布开始并继续下去的路径是否不好? 【发布时间】:2012-11-04 18:43:02 【问题描述】:

我只想显示在画布上绘制的形状的一部分。 我的线基本上是这样的,而且效果很好:

ctx.fillRect( xPosition, rectHeight - offsetV , rectWidth, rectHeight);

那里的第二个变量将是负数。所以,我的问题是:绘制一条从画布开始(带有负坐标)然后继续在画布上绘制的路径是不好的做法(或者我是否会让自己在路上出错)。

【问题讨论】:

不,不是这样,只要你没有在屏幕外画出太多的东西,这将是资源的重大浪费。 如果您想知道,大多数实现 (?all?) 会在绘制矩形之前对其进行剪辑,因此成本只是这个剪辑成本 - 没有一个像素被绘制在画布之外 -。跨度> 【参考方案1】:

完全没有问题。如果您有大量的绘图对象,您可以(如 GameAlchemist 所说)阻止绘制该对象。如果您使用像地图这样的画布进行探索(缩小/缩小 ctx,翻译整个上下文),阻止绘图可能会花费更多的剪辑成本。而且很复杂……

我的画布对象有些过期了。如果您将计算和其他(无绘图)员工介绍绘制功能,您可能会遇到问题。

重要:

-使画布绘制功能代码清晰(仅绘制画布代码)。

-如果您的应用程序不需要 const 更新,则仅在需要时进行更新调用。

-仅在(0,0,canvas.w,canvas.h)中清除画布

-仅在需要时使用样式(笔触、填充、字体等)

【讨论】:

以上是关于画布,负坐标:绘制从画布开始并继续下去的路径是不是不好?的主要内容,如果未能解决你的问题,请参考以下文章

从坐标图中绘制多边形画布

JS中canvas画布绘制中如何实现缩放,位移,旋转

在 HTML5 画布上动画绘制路径

如何获取椭圆边框的坐标

flutter画布绘制图片和文字

调用ondraw后重置画布,然后再在android中调用它