【发布时间】:2013-03-12 18:20:17
【问题描述】:
我正在寻找一种合适的方法来计算三角形的矩形边界框,该三角形具有三个角作为点 - (x1,y1)、(x2,y2)、(x3,y3)。
这是我正在使用的数据类型(按照建议,我添加了更多构造函数):
data Shape =
Circle Point Double |
Rectangle Point Point |
Triangle Point Point Point
边界框函数的格式应该是“bounding :: Shape -> Shape”。 我也试过矩形和圆形的边界框:
bounding :: Shape -> Shape
bounding (Rectangle (Point x y) (Point z z1)) = (Rectangle (Point x y) (Point z z1))
bounding (Circle (Point p w) r) = (Rectangle (Point (p-r) (w-r)) (Point (p+r) (w+r)))
如果应该使用图形坐标系,这些是否正确(其中 (x,y) 坐标应该被视为 (x,-y))?
有人可以帮帮我吗? 附言不需要图形库。
【问题讨论】:
-
你的输出类型肯定应该是某种边界框而不是另一个三角形?
-
@dave4420 是的,输出应该只是一个包围矩形。
-
但是
Shape的类型仅将三角形列为可能的形状。你遗漏了什么吗?
标签: haskell geometry bounding-box