【问题标题】:Generate Code to represent Tony Stark palladium neck effect生成代码来表示托尼·斯塔克钯颈效应
【发布时间】:2020-11-07 08:06:42
【问题描述】:

我正在尝试创建一种动画、随机生成的钯毒性颈部效果,就像托尼·斯塔克在钢铁侠 2 中脖子上的效果一样。

我的第一个想法是使用 SVG 的自动生成来创建它,并带有一个循环作为子级拆分。

https://codepen.io/tony-hensler/pen/gOPBJWO 这一点都不顺利,我没有跟踪孩子们的创作过程,而且这些线条看起来太机械化和棱角分明。

我还查看了更改https://codepen.io/Tibixx/pen/MZWRzJ 上提供的代码 通过更改以下值:-

  var cx;
  var cy;

但不幸的是,这也没有成功。

我的下一个尝试是生成一个包含所有必需坐标的 JSON,然后生成一个画出线条的画布。

我坚决认为 SVG 不适合这个,所以我将看看在画布上绘制它。

我可能过度考虑了存储 JSON 的过程。 我还能如何附加此任务?任何推动正确方向的帮助都会令人惊叹。

【问题讨论】:

  • 这是一个有趣的分形树教程:youtube.com/watch?v=fcdNSZ9IzJM 可能会帮助您朝着正确的方向前进。
  • Canvas 或 SVG 无关紧要,这就是您渲染它的方式。这里的棘手部分是生成线条的坐标。
  • @Terminator-Barbapapa 干杯我要一块手表。
  • @Thomas 是的,我已经创建了codepen.io/tony-hensler/pen/PoZQZOE,但我想更进一步,添加具有父母笔画宽度比例的儿童。它正在跟踪孩子们。

标签: javascript html css svg canvas


【解决方案1】:

您是否尝试过以这样一种方式更改递归闪电模式,而不是从 (sx,sy) 到 (cx,cy) 绘制一条直线,而是绘制两条线(一条垂直线和一条水平线)?本质上,您将斜边替换为直角三角形的另外两个边。

我还没有代码示例,但可以想象它运行良好。

编辑:

Here 是结果的一个示例。我在原来的 codepen 上工作,而不是分叉它。不要忘记同时更改 draw()split() 函数。

【讨论】:

  • @OP 有两个地方您必须将 ctx.moveTo(sx,sy); ctx.lineTo(cx,cy); 更改为 ctx.moveTo(sx,sy); ctx.lineTo(cx,sy); ctx.lineTo(cx,cy);。我不想创建一个帐户只是为了分叉这个 codepen。
  • 令人惊叹的效果就像一个魅力。我已经创建了一个结果的 JSFiddle,很想知道如果这很容易的话,如何让初始行从左边开始并向右移动? - jsfiddle.net/zaqog3b2
猜你喜欢
  • 1970-01-01
  • 2021-02-15
  • 1970-01-01
  • 2012-11-04
  • 1970-01-01
  • 1970-01-01
  • 2015-10-08
  • 2011-06-28
  • 2023-03-03
相关资源
最近更新 更多