Files

57 lines
2.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
id: 5900f4d91000cf542c50ffeb
title: 'Задача 363: Крива Безьє'
challengeType: 5
forumTopicId: 302024
dashedName: problem-363-bzier-curves
---
# --description--
Кубічна крива Безьє визначається чотирма точками: $P_0$, $P_1$, $P_2$ та $P_3$.
Крива будується наступним чином:
<img class="img-responsive center-block" alt="побудова кривої Безьє" src="https://cdn.freecodecamp.org/curriculum/project-euler/bzier-curves.png" style="background-color: white; padding: 10px;" />
На відрізках $P_0P_1$, $P_1P_2$ та $P_2P_3$ точки $Q_0$,$Q_1$ та $Q_2$ намальовані так, що $\frac{P_0Q_0}{P_0P_1} = \frac{P_1Q_1}{P_1P_2} = \frac{P_2Q_2}{P_2P_3} = t$, з $t$ в [0,1].
На відрізках $Q_0Q_1$ та $Q_1Q_2$ точки $R_0$ та $R_1$ намальовані так, що $\frac{Q_0R_0}{Q_0Q_1} = \frac{Q_1R_1}{Q_1Q_2} = t$ для того ж значення $t$.
На відрізку $R_0R_1$ точка $B$ намальована так, що $\frac{R_0B}{R_0R_1} = t$ для того ж значення $t$.
Крива Безьє, визначена точками $P_0$, $P_1$, $P_2$, $P_3$, є місцем розташування $B$, оскільки $Q_0$ займає всі можливі позиції на відрізку $P_0P_1$. (Зверніть увагу, що для всіх пунктів значення $t$ однакове.)
З побудови зрозуміло, що крива Безьє буде дотичною до відрізків $P_0P_1$ в $P_0$ та $P_2P_3$ в $P_3$.
Кубічна крива Безьє з $P_0 = (1, 0)$, $P_1 = (1, v)$, $P_2 = (v, 1)$ і $P_3 = (0, 1) $ використовується для наближення значення чверті кола. Значення $v > 0$ вибрано таким чином, що площа, обмежена лініями $OP_0$, $OP_3$ і крива дорівнює $\frac{π}{4}$ (площа чверті кола).
На скільки відсотків довжина кривої відрізняється від довжини чверті кола? Тобто, якщо $L$ - це довжина кривої, обчисліть $100×\displaystyle\frac{L-\frac{π}{2}}{\frac{π}{2}}$. Відповідь округляйте до 10 цифр після коми.
# --hints--
`bezierCurves()` повинен повернутися `0.0000372091`.
```js
assert.strictEqual(bezierCurves(), 0.0000372091);
```
# --seed--
## --seed-contents--
```js
function bezierCurves() {
return true;
}
bezierCurves();
```
# --solutions--
```js
// solution required
```