Как я могу заставить динамический объект автоматически изменяться в этом коде панели кликов? - PullRequest
0 голосов
/ 16 марта 2019

Ниже приведен следующий код из Mathematica, над которым я работал.

DynamicModule[{pts = {}, text = {}, triangle},
 ClickPane[
  Framed@Graphics[{White, EdgeForm[{Red}], Triangle[Dynamic[pts]], 
     Black, PointSize[0.02], Point[Dynamic[pts]], Black, 
     Dynamic[Text[Area[Triangle[pts]], 
       Dynamic[RegionCentroid[Triangle[pts]]]]]},
    PlotRange -> 10, ImageSize -> 200],
  (If[Length[pts] < 3, AppendTo[pts, #], pts = {}] &)]]

Я пытаюсь создать треугольник из трех точек, по которым пользователь нажимает в дополнение к отображению областитреугольник в его центроиде;однако всегда есть ошибка, пока я не нажму три раза.Mathematica отображает следующее:

Coordinate RegionCentroid[Triangle[{}]] should be a pair of numbers, or a Scaled or Offset form.

Что это значит и как я могу исправить ошибку?

(Кроме того, как я могу изменить код, чтобы мне не нужно было нажиматьдополнительное время, чтобы сбросить экран, чтобы начать новый треугольник? Я хочу только три раза щелкнуть мышью, чтобы получить мой треугольник, вместо четырех, которые требуются прямо сейчас.)

...