Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.07.2017, 13:37
Интересующийся
Отправить личное сообщение для Negotiant Посмотреть профиль Найти все сообщения от Negotiant
 
Регистрация: 27.03.2017
Сообщений: 28

передвижение по svg-путям
Подскажите, возможно ли передвигать объекты в canvas используя svg-пути? Не прорисовывать что-либо, а использовать как некую карту движения? Если да ( а сам думаю что можно, но запутался в примерах на Codepen..) - буду благодарен за простой пример, демонстрирующий суть процесса..
Ответить с цитированием
  #2 (permalink)  
Старый 07.07.2017, 19:00
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 456

Negotiant,
<canvas></canvas>
<script>
function SVGPath(path) {
	this.path = document.createElementNS('http://www.w3.org/2000/svg', 'path');
	this.path.setAttribute('d', path);
	this.length = this.path.getTotalLength();
}
SVGPath.prototype.follow = function(duration, onprogress) {
	var path = this.path, length = this.length, start = performance.now();
	requestAnimationFrame(function step(now) {
		var progress = (now - start) / duration;
		if (progress > 1) progress = 1;
		onprogress(path.getPointAtLength(length * progress));
		if (progress < 1) requestAnimationFrame(step);
	});
};

var ctx = document.querySelector('canvas').getContext('2d');

var route = new SVGPath('M10 80 Q 52.5 10, 95 80 T 180 80');

route.follow(10000, function(point) {
	ctx.clearRect(0, 0, 300, 150);
	ctx.beginPath();
	ctx.arc(point.x, point.y, 10, 0, 2 * Math.PI);
	ctx.fill();
});
</script>

Последний раз редактировалось Rise, 07.07.2017 в 19:02.
Ответить с цитированием
  #3 (permalink)  
Старый 07.07.2017, 19:18
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Rise,
Ответить с цитированием
  #4 (permalink)  
Старый 08.07.2017, 08:44
Интересующийся
Отправить личное сообщение для Negotiant Посмотреть профиль Найти все сообщения от Negotiant
 
Регистрация: 27.03.2017
Сообщений: 28

Rise,
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как лучше подключать SVG объект Black_Star (X)HTML/CSS 0 02.12.2016 00:09
Создание SVG элемента и вставка на страницу FINoM Events/DOM/Window 3 13.09.2015 16:47
SVG CSS, SVG to WOFF kobezzza Firefox/Mozilla 2 29.03.2013 15:59
Inline SVG as background Paguo-86PK Элементы интерфейса 0 16.12.2011 20:12
Простой графический движок: SVG vs Canvas stryaponoff Общие вопросы Javascript 5 29.06.2010 16:59