(x1,y1)、(x2,y2)、(x3,y3) の 3 つの角をポイントとして指定された三角形の長方形のバウンディング ボックスを計算する適切な方法を探しています。
これが私が使用しているデータ型です(提案されているように、コンストラクターを追加しました):
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) として処理する必要があります)、これらは正しいですか?
誰か助けてください。PS グラフィック ライブラリは必要ありません。