lorgon
Известный
- 656
- 271
Описание: Функция точек на кубической кривой Безье
Код:
Пример использования:
Код:
Code:
function cubicBezier(p0, p1, p2, p3, t) -- t ∈ [0; 1]
local x = (1 - t)^3 * p0[1] + 3 * (1 - t)^2 * t * p1[1] + 3 * (1 - t) * t^2 * p2[1] + t^3 * p3[1]
local y = (1 - t)^3 * p0[2] + 3 * (1 - t)^2 * t * p1[2] + 3 * (1 - t) * t^2 * p2[2] + t^3 * p3[2]
return {x, y}
end
Example:
function cubicBezier(p0, p1, p2, p3, t)
local x = (1 - t)^3 * p0[1] + 3 * (1 - t)^2 * t * p1[1] + 3 * (1 - t) * t^2 * p2[1] + t^3 * p3[1]
local y = (1 - t)^3 * p0[2] + 3 * (1 - t)^2 * t * p1[2] + 3 * (1 - t) * t^2 * p2[2] + t^3 * p3[2]
return {x, y}
end
local p0, p1, p2, p3 = {0, 0}, {0.5, 0.0}, {0.5, 1.0}, {1, 1}
for t = 0, 1, 0.05 do
local p = cubicBezier(p0, p1, p2, p3, t)
drawPoint(p[1], p[2]) -- условная функция
end
- Плавная или красивая анимация чего-либо
- Соединение двух элементов плавной кривой (дизайн)
- Соединение двух элементов плавной кривой (дизайн)