【问题标题】:How to draw bezier curve randomly for every second? also using the transition.dart如何每秒随机绘制贝塞尔曲线?也使用了 transition.dart
【发布时间】:2016-05-09 08:43:24
【问题描述】:

我想知道如何随机绘制随动画每秒变化的贝塞尔曲线。

【问题讨论】:

    标签: dart bezier stagexl


    【解决方案1】:

    这是一个非常具体的问题。通用的答案是图形类上的每个绘制命令都返回一个对象。稍后您可以使用此对象更改绘图命令的属性(x、y、颜色、宽度...)。这个例子应该给你一个想法:

    import 'dart:html' as html;
    import 'package:stagexl/stagexl.dart';
    
    void main()  {
    
      var canvas = html.querySelector('#stage');
      var stage = new Stage(canvas, width: 800, height: 600);
      var renderLoop = new RenderLoop();
      renderLoop.addStage(stage);
    
      var shape = new Shape();
      var movetoCommand = shape.graphics.moveTo(100, 100);
      var bezierCommand = shape.graphics.bezierCurveTo(500, 200, 200, 500, 500, 500);
      var strokeCommand = shape.graphics.strokeColor(Color.Red, 15);
      stage.addChild(shape);
    
      stage.juggler.translation(500, 200, 5.0, Transition.sine).listen((v) {
        // change "controlX1" of the bezier draw command in an animation
        bezierCommand.controlX1 = v.toDouble();
      });
    
      stage.juggler.translation(200, 500, 5.0, Transition.sine).listen((v) {
        // change "controlX2" of the bezier draw command in an animation
        bezierCommand.controlX2 = v.toDouble();
      });
    
      stage.juggler.translation(15, 50, 15.0, Transition.sine).listen((v) {
        // change "width" of the stroke draw command in an animation
        strokeCommand.width = v.toDouble();
      });
    
    }
    

    我不会描述如何使贝塞尔曲线的位置随机化,这只是上面示例的特殊情况。

    【讨论】:

    • 顺便说一句。您可以在此处了解有关 Juggler 框架的更多信息:stagexl.org/docs/wiki-articles.html?article=juggler
    • 我明白了。但我怎样才能每秒改变它?
    • stage.juggler.interval(1.0).take(15).listen((counter) { print(counter); // 每1.0秒最多计数15 });
    • 每个绘制命令(moveTo、liveTo、curveTo、...)都会返回一个对象。 movetoCommand 是 moveTo 绘图命令的返回值。您可以使用此对象更改 moveTo 绘制命令的 x 和 y 属性。在所示示例中未使用它,但我展示了 moveTo 命令也返回一个对象。
    • 这个网站是我想做的。请帮忙。 :D
    猜你喜欢
    • 2017-01-09
    • 1970-01-01
    • 2017-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-26
    • 1970-01-01
    相关资源
    最近更新 更多