在列表中放置多个点? - 创建多边形

时间:2018-03-31 05:01:38

标签: haskell

所以,我正在寻求一些帮助,我将如何解决这个问题。这就是功能。

getPolygonGraphic :: [Point] -> ColourName -> Graphic
getPolygonGraphic = ??

多边形定义为:

data Shape = Rectangle Side Side
       | Ellipse   Side Side
       | Polygon   [Point]
       | Line      Point Point
deriving (Show)

此外,' Side' =双倍

ColourName由以下人员定义:

data ColourName
= Magenta
| Black
| Green
| Yellow
| Orange
| Cyan
deriving (Show)

图形是:

data Graphic =
Graphic Shape
        ColourName
        Point
deriving (Show)

我尝试右边的' ='是有:

getPolygonGraphic :: [Point] -> ColourName -> Graphic
getPolygonGraphic = Graphic(Polygon) colourType ()

但是,我还没有添加任何要点,因为我不确定如何使用列表。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我的主要疑问是,Point以及Point的定义应该是哪一个。通过查看其他一些问题,我猜测(Int, Int)(0, 0)

在此解决方案中,我使用Graphic作为getPolygonGraphic :: [Point] -> ColourName -> Graphic getPolygonGraphic ps c = Graphic (Polygon ps) c (0, 0) 构造函数接收的第三个值:

Point

在这里,我正在使用阵列上的第一个getPolygonGraphic :: [Point] -> ColourName -> Graphic getPolygonGraphic (p:ps) c = Graphic (Polygon (p:ps)) c p

{{1}}

只需将该值更改为您应该使用的课程作业。