Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Повёрнутый текст в canvase (https://javascript.ru/forum/misc/74384-povjornutyjj-tekst-v-canvase.html)

MC-XOBAHCK 06.07.2018 01:15

Повёрнутый текст в 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()
Подскажите, как правильно сделать?

j0hnik 06.07.2018 01:44

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

<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>


предполагаю что вам надо повернуть холст, написать и вернуть в исходное положение чтобы не трогать остальное

Alexandroppolus 06.07.2018 08:24

Цитата:

Сообщение от MC-XOBAHCK
этот rotate поворачивает и следующий текст

Если не нравится, то ctx.save()/ctx.restore()
https://developer.mozilla.org/en-US/...ransformations

MC-XOBAHCK 06.07.2018 09:15

Цитата:

Сообщение от j0hnik (Сообщение 489115)
rotate поворачивает не текст, а контекст

Спасибо, оч хороший пример - коротко и ясно.
Цитата:

Сообщение от Rise (Сообщение 489116)
Если первый повернули на 40, а второй надо на -60, значит второй будет -100 (-60-40).

Да, теперь уже понял.

Цитата:

Сообщение от Alexandroppolus (Сообщение 489120)
ctx.save()/ctx.restore()

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


Часовой пояс GMT +3, время: 02:45.