Как найти среднюю точку кривой Безье?

jinja2 template fizzbuz:

<form>
  <ol>
    {% for x in range(1,n+1) %}
      {% set fizzbuzz_rpm = x %}
      {% if x % 3 == 0 and x % 5 == 0 %}
        {% set fizzbuzz_rpm="FizzBuzz" %}
      {% elif x % 3 == 0 %}
          {% set fizzbuzz_rpm="Fizz" %}
      {% elif x %5 == 0 %}
          {% set fizzbuzz_rpm="Buzz" %}
      {% endif %}
      <li>{{fizzbuzz_rpm}}</li>
    {% endfor %}
  </ol>
</form>
7
задан Kevin Workman 16 January 2019 в 17:37
поделиться

2 ответа

Итак, формула для перевода 4-х точек в функцию во времени выглядит следующим образом (изображение из Википедии):

enter image description here

Поскольку вы хотите среднее значение, а t находится в диапазоне от 0 до 1, вам просто нужно установить t = 1/2

Так

B (1/2) = 1/8 P0 + 3/8 P1 + 3/8 P2 + 1/8 P3

0
ответ дан Cristian Traìna 16 January 2019 в 17:37
поделиться

Вы можете использовать функцию bezierPoint(), которая поставляется с P5.js.

Из ссылка :

noFill();
var x1 = 85,
 x2 = 10,
 x3 = 90,
 x4 = 15;
var y1 = 20,
 y2 = 10,
 y3 = 90,
 y4 = 80;
bezier(x1, y1, x2, y2, x3, y3, x4, y4);
fill(255);
var steps = 10;
for (var i = 0; i <= steps; i++) {
  var t = i / steps;
  var x = bezierPoint(x1, x2, x3, x4, t);
  var y = bezierPoint(y1, y2, y3, y4, t);
  ellipse(x, y, 5, 5);
}

points drawn on curve

Возможно, вы захотите использовать значение 0.5 для [113 ], чтобы получить середину.

0
ответ дан Kevin Workman 16 January 2019 в 17:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: