如何在Elm中获得窗体的宽度?

如何在Elm中获得窗体的宽度?,elm,Elm,我试着写一个函数,它取一个形式,把它的三个副本排列成三角形。例如,对绿色三角形执行此操作将产生三原力。我已经决定,使用拼贴是最好的方式做到这一点。我无法根据表格的大小调整拼贴的大小。它应该是窗体的两倍宽和两倍高。我能想到的最好办法是跟踪用于创建窗体的形状的宽度。一种方法是创建一个记录类型来保存每个表单,其宽度为: type alias MyForm = { form : Form , width : Int } makeCircleForm: Float -> MyF

我试着写一个函数,它取一个形式,把它的三个副本排列成三角形。例如,对绿色三角形执行此操作将产生三原力。我已经决定,使用拼贴是最好的方式做到这一点。我无法根据表格的大小调整拼贴的大小。它应该是窗体的两倍宽和两倍高。

我能想到的最好办法是跟踪用于创建窗体的形状的宽度。一种方法是创建一个记录类型来保存每个表单,其宽度为:

type alias MyForm =
  {   form : Form
    , width : Int
  }

makeCircleForm: Float -> MyForm
makeCircleForm  r = {form: (filled grey (circle r)), width: (round 2*r)}

这将使处理表单变得更麻烦,但至少您有宽度。

您是如何创建表单的?我不认为有一种简单的方法可以从表单本身获得宽度,因为表单基于各种底层对象,例如元素、文本、形状等。谢谢。我想可能有一种更优雅的方式,但这就行了。我认为,应该有一个简单形状的软件包,它是元素。