背景:
嘿嘿!我正在尝试生成一个电路板,上面印有旧金山的一个子集。大部分工作都已完成,我正在生成如下所示的图像:
问题是我渲染的线延伸到我的硬编码截止边界之外(我渲染的线一侧在边界内,另一侧在边界外)。
问题:
给定一组这样的行:
# x1,y1, x2,y2
10,10,40,40
80,80,120,120
如何修改每条线的坐标,使其在特定边界处“截断”?
在上面的例子中,第二行(以原始形式)延伸到 (120,120),假设边界为 100,100,应该只延伸到 (100,100)。
想法
根据我记得的高中数学知识,我应该在公式 y=mx+b
中代入一些东西是吗?即便如此,我将如何处理无限梯度等?
感谢您提供的所有帮助 :D Puesdocode/python/Go 更受欢迎,但解释也很慷慨。
<3 汤姆
最佳答案
您最好的 friend 是 Cohen–Sutherland 剪线算法。
https://en.wikipedia.org/wiki/Cohen%E2%80%93Sutherland_algorithm
关于math - 给定二维空间中的一组线,如何将它们截断到边界内?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50728950/