Цитата:
Цитата:
https://ru.wikipedia.org/wiki/%D0%90...8C%D0%B6%D0%BE https://code.google.com/p/polypuch/s...ier/bezier.cpp чуешь разницу? |
Цитата:
x^2 quadraticCurveTo() x^3 bezierCurveTo() http://learn.javascript.ru/play/pJdbfb |
у кого то сегодня будет секс с производными...:)
|
Самый оптимальный алгоритм построения прямых линий если API не подходит:
1. Не использовать корней. 2. Не использовать операции деления и если возможно минимизировать умножения. 3. Использовать imageData как Aetae говорит, когда надо Год назад писал рендер толстых полилиний, используя api-заливку и метод lineTo, чтобы получить замкнутую трапецию, мне удалось обогнать api-шный рендер. Цитата:
Поиграться можно тут http://learn.javascript.ru/play/qkbwbb
/* Кубическая кривая Безье */
function bezierCurveTo(p1x, p1y, p2x, p2y, p3x, p3y, p4x, p4y) {
/*
обычно хватает взять расстояние 2-х конечных точек для интерполяции кривой если точки соединяются отрезком,
если же кривая рисуется точками придется брать сумму расстояний всех точек. Но есть и аналитические решения с оптимизированным подходом
*/
var dist = distance(p1x, p1y, p2x, p2y),
step = 1 / dist;
_x = p1x,
_y = p1y;
for ( var t = 0; t < 1; t += step ) {
var a = (1-t) * (1-t) * (1-t),
b = 3 * t * (1-t) * (1-t),
c = 3 * t * t * (1-t),
d = t * t * t,
x = a * p1x + b * p2x + c * p3x + d * p4x,
y = a * p1y + b * p2y + c * p3y + d * p4y;
//здесь стоит использовать самую оптимальную фун-ю,
//например, оптимизированный вариант Брезенхема
drawLineTo(_x, _y, x, y, step);
_x = x;
_y = y;
}
}
|
Цитата:
Цитата:
Не догоняешь? Допустим тебе нужно написать текст по кривой безье, например как тут: http://wiki.scribus.net/wiki/images/0/00/Textpath1.jpg как мне поможет функция, которая просто рисует кривую? |
Цитата:
Вместе с тем ты дико негодуешь, почему мы до сих пор тебя не поняли и не можем прочитать твои мысли. svg http://jsfiddle.net/chriswilsondc/4UykA/ http://www.kevlindev.com/tutorials/b.../svg/index.htm canvas https://developer.mozilla.org/en-US/...longPath.28.29 |
Цитата:
Мне не нужно писать текст вдоль кривой, это был пример, который как мне тогда подумалось поможет именно тебе понять зачем это нужно, но похоже не получилось. Я не ем суп вилкой, но ты почему-то так считаешь. Давай по другому: нужно написать слово вдоль кривой, но так чтобы одна буква была сверху, а другая снизу, а третья смотрела в другую сторону. Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
вручную это делать - ад |
| Часовой пояс GMT +3, время: 16:26. |