2016-02-01 2 views
1

мне нужно применить масштабирование к яваскрипту холсту, который я плохо выполненному с помощью следующей строки коды:Применить масштабирование в центре холста

ctx.scale(2,2) //doubles everything's size 

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

enter image description here

Любые идеи о том, как я мог бы сделать то, что изображено на рисунке? Я не использую какие-либо внешние библиотеки, что делает это настолько сложным. Благодарю.

+0

Используйте CSS [ 'transform'] (https://developer.mozilla.org/en-US/ docs/Web/CSS/transform). – Teemu

+0

Как это работает? – Johnny

+0

Просто нажмите на ссылку и узнайте ... – Teemu

ответ

2

Вы можете перевести контекст наполовину размер холста, используя ctx.translate()

EDIT:

var zoomfactor = 2; //set whatever you want as zoom factor 
ctx.setTransform 
    (zoomfactor, 0, 0, zoomfactor, -(zoomfactor - 1) * canv‌​as.width/2, 
-(zoomfac‌​tor - 1) * canvas.height‌​/2); 
+0

Да, я возился с ctx.scale и ctx.translate, и, боюсь, я не смог выполнить то, что мне нужно. – Johnny

+0

@Johnny используйте это для большей ясности: 'ctx.transform (zoomfactor, 0,0, zoomfactor, - (zoomfactor-1) * canvas.width/2, - (zoomfactor-1) * canvas.height/2)' и то вам нужно перерисовать свой холст. – stity

+2

@stity это 'ctx.setTransform()' – Kaiido

Смежные вопросы