Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.07.2018, 01:15
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

Повёрнутый текст в canvase
У меня проблемы с текстом в canvas. Не могу вывести два текста подряд с разными rotate и координатами.
Вот код, Текст3 и Текст4 крутятся вместе:
ctx.font = '21px Roboto';
ctx.fillStyle = "#000";

ctx.fillText('Текст1', 140, 33);

ctx.fillText('Текст2', 40, 135);

ctx.translate(20, 10);
ctx.rotate((Math.PI / 180) * (40));    // этот rotate поворачивает и следующий текст
ctx.fillText('Текст3', 20, 10);

ctx.translate(20, 100);
ctx.rotate((Math.PI / 180) * (-60));
ctx.fillText('Текст4', 0, 0);


Наверно я неправильно вывожу. Возможно для текста есть какой то разделитель типа beginPath()
Подскажите, как правильно сделать?
Ответить с цитированием
  #2 (permalink)  
Старый 06.07.2018, 01:44
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

MC-XOBAHCK,
rotate поворачивает не текст, а контекст

<canvas></canvas>
	<script>
		var canvas = document.querySelector('canvas');
		ctx = canvas.getContext('2d');

ctx.font = '21px Roboto';
ctx.fillStyle = "#000";
ctx.rotate(1); 
ctx.fillText('Текст1', 20, 10);
ctx.fillText('Текст2', 20, 20);
ctx.rotate(-1);
ctx.fillText('Текст3', 20, 30);
ctx.fillText('Текст4', 20, 40);

</script>


предполагаю что вам надо повернуть холст, написать и вернуть в исходное положение чтобы не трогать остальное
Ответить с цитированием
  #3 (permalink)  
Старый 06.07.2018, 02:36
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,672

Если первый повернули на 40, а второй надо на -60, значит второй будет -100 (-60-40).
Ответить с цитированием
  #4 (permalink)  
Старый 06.07.2018, 08:24
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,010

Сообщение от MC-XOBAHCK
этот rotate поворачивает и следующий текст
Если не нравится, то ctx.save()/ctx.restore()
https://developer.mozilla.org/en-US/...ransformations
Ответить с цитированием
  #5 (permalink)  
Старый 06.07.2018, 09:15
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

Сообщение от j0hnik Посмотреть сообщение
rotate поворачивает не текст, а контекст
Спасибо, оч хороший пример - коротко и ясно.
Сообщение от Rise Посмотреть сообщение
Если первый повернули на 40, а второй надо на -60, значит второй будет -100 (-60-40).
Да, теперь уже понял.

Сообщение от Alexandroppolus Посмотреть сообщение
ctx.save()/ctx.restore()
Бывают же в жизни огорчения...
Я вчера много раз всю документацию просмотрел, правда ru-версию. А там значительно урезано: https://developer.mozilla.org/ru/doc...Context2D/save
Спасибо, закладку исправил на en-US, теперь буду знать как оно бывает.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Раскрывающийся список с объемными текстами morzer Общие вопросы Javascript 4 11.07.2016 14:54
проблема со scroll Chrome Элементы интерфейса 2 21.10.2013 14:46
прогкрутка к якорям cOAPerator Общие вопросы Javascript 20 27.08.2013 03:30
Выравнять три дива в одной строке debugx (X)HTML/CSS 9 06.10.2011 12:03