Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #71 (permalink)  
Старый 27.12.2014, 00:30
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Сообщение от nerv_
только для тебя
Сообщение от Gozar
алгоритм
алгоритм != математическая формула

https://ru.wikipedia.org/wiki/%D0%90...8C%D0%B6%D0%BE
https://code.google.com/p/polypuch/s...ier/bezier.cpp
чуешь разницу?
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #72 (permalink)  
Старый 27.12.2014, 01:28
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от Gozar
алгоритм != математическая формула
есть же функции контекста 2д

x^2 quadraticCurveTo()
x^3 bezierCurveTo()

http://learn.javascript.ru/play/pJdbfb
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #73 (permalink)  
Старый 27.12.2014, 02:39
Профессор
Отправить личное сообщение для l-liava-l Посмотреть профиль Найти все сообщения от l-liava-l
 
Регистрация: 14.03.2012
Сообщений: 1,808

у кого то сегодня будет секс с производными...
__________________
Научу себя плохому
Ответить с цитированием
  #74 (permalink)  
Старый 27.12.2014, 11:43
Любитель
Отправить личное сообщение для JsLoveR Посмотреть профиль Найти все сообщения от JsLoveR
 
Регистрация: 16.12.2009
Сообщений: 422

Самый оптимальный алгоритм построения прямых линий если API не подходит:
1. Не использовать корней.
2. Не использовать операции деления и если возможно минимизировать умножения.
3. Использовать imageData как Aetae говорит, когда надо

Год назад писал рендер толстых полилиний, используя api-заливку и метод lineTo, чтобы получить замкнутую трапецию, мне удалось обогнать api-шный рендер.
Сообщение от Gozar
Меня больше теперь интересует вопрос: как найти координаты всех точек между двух точек кривой Безье
Дед Мороз безьешку 3-го порядка принес:
Поиграться можно тут 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;
		}
	  }

Последний раз редактировалось JsLoveR, 27.12.2014 в 11:46.
Ответить с цитированием
  #75 (permalink)  
Старый 27.12.2014, 12:13
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Сообщение от JsLoveR
Дед Мороз безьешку 3-го порядка принес:
Поиграться можно тут http://learn.javascript.ru/play/qkbwbb
Класс! Спасибо.

Сообщение от nerv_
есть же функции
Кэп? Прикинь я ими даже пользоваться умею, но это никаким местом не помогает решать поставленную задачу.
Не догоняешь? Допустим тебе нужно написать текст по кривой безье, например как тут: http://wiki.scribus.net/wiki/images/0/00/Textpath1.jpg как мне поможет функция, которая просто рисует кривую?
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #76 (permalink)  
Старый 27.12.2014, 15:44
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от Gozar
Кэп? Прикинь я ими даже пользоваться умею, но это никаким местом не помогает решать поставленную задачу.
Не догоняешь? Допустим тебе нужно написать текст по кривой безье, например как тут: 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
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #77 (permalink)  
Старый 27.12.2014, 16:27
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Сообщение от nerv_
ты дико негодуешь
Я пытаюсь понять нафиг ты пишешь в этой теме, если даже не пытаешься её понять?

Мне не нужно писать текст вдоль кривой, это был пример, который как мне тогда подумалось поможет именно тебе понять зачем это нужно, но похоже не получилось. Я не ем суп вилкой, но ты почему-то так считаешь. Давай по другому: нужно написать слово вдоль кривой, но так чтобы одна буква была сверху, а другая снизу, а третья смотрела в другую сторону.

Сообщение от nerv_
вообще никто не догоняет
JsLoveR, прекрасно понял, что нужно.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.

Последний раз редактировалось Gozar, 27.12.2014 в 16:29.
Ответить с цитированием
  #78 (permalink)  
Старый 28.12.2014, 00:07
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от Gozar
Я пытаюсь понять нафиг ты пишешь в этой теме, если даже не пытаешься её понять?
какой вопрос, такой ответ. Постараюсь больше не писать в твоих темах ......... в этом году
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук

Последний раз редактировалось nerv_, 28.12.2014 в 00:19.
Ответить с цитированием
  #79 (permalink)  
Старый 28.12.2014, 11:00
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Сообщение от nerv_
Постараюсь больше не писать в твоих темах
Лучше постарайся сначала понять вопрос.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #80 (permalink)  
Старый 28.12.2014, 14:07
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от l-liava-l Посмотреть сообщение
у кого то сегодня будет секс с производными...
я в своё время трахался с wolfram alpha для производных\первообразных для полиномов третьей степени (кубич. кривые Безье))
вручную это делать - ад
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по replace. Как заменить все точки в строке? Pluto Общие вопросы Javascript 14 21.04.2017 12:32
Получить координаты курсора в текстовом поле в пикселях prike Events/DOM/Window 4 23.05.2013 04:35
Получить все элементы YISHIMITSY Events/DOM/Window 6 19.02.2010 15:44
Получить все инпуты по заданоой маске nws Общие вопросы Javascript 2 09.09.2009 01:46
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37