在android上的2个距离点之间画线
假设我们有一个 400x800 的画布,我想画一条连接点的线 P1 (10,10) 和 P2(500000,800000)。 正如您所看到的,第二个点远远超出了画布边界。如果我使用 canvas.darwLine(p1.x, p1.y,p2.x,p2.y,paint) 应用程序将冻结并且应用程序变得无法使用。 使用剪裁并不能解决问题,绘图引擎仍在尝试将像素绘制到第二点的整个路径
有任何建议或解决方法吗?
Lets say we have a 400x800 canvas and I want to draw a line connecting the points
P1 (10,10) and P2(500000,800000).
As you can see the second point is far outside the canvas boundaries. If I use canvas.darwLine(p1.x, p1.y,p2.x,p2.y,paint) the app freezes and the app becomes unusable.
using a clipping doesn't solve the problem, the drawing engine is still trying to draw the pixels to the whole way to the second point
Any suggestions or a workaround?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果 P2 位于可见区域之外(在本例中为 480x800),则计算该线与边框的交点,然后使用交点而不是 P2。
If P2 is outside the visible area (480x800 in this particular case) then calculate the intersection of this line with border, an then use the intersection point instead of P2.
你可以缩小你的生产线,像这样:
我还没有尝试过这个,所以我不能保证它会起作用。
You can scale down your line, with something like this:
I haven't tried this, so I can't guarantee that it will work.