Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   canvas: пререрисовака экрана (https://javascript.ru/forum/dom-window/37772-canvas-prererisovaka-ehkrana.html)

Seva Pletnev 12.05.2013 15:23

можно ли g.rotate поворачивать ТОЛЬКО определенную фигуру , а не все систему координат??????????

vadim5june 12.05.2013 16:42

Цитата:

Сообщение от Seva Pletnev (Сообщение 250011)
можно ли g.rotate поворачивать ТОЛЬКО определенную фигуру , а не все систему координат??????????

для этого есть пара g.save g.restore
g.save();
g.rotate(....
g.restore()

мы поворачиваем всю систему координат но в конце восстанавливаем предыдущее состояние

dmitriymar 12.05.2013 16:46

Цитата:

Сообщение от Seva Pletnev
можно ли g.rotate поворачивать ТОЛЬКО определенную фигуру , а не все систему координат??????????

ещё раз -основы учите

нет фигур на канве после "отрисовки" их . есть канва и всё!

Seva Pletnev 12.05.2013 17:23

да, но при перерисовки они есть)))

Seva Pletnev 12.05.2013 17:25

"ещё раз -основы учите" на этом сайте я их прочел и ответа нужного не нашел.

dmitriymar 12.05.2013 18:20

Цитата:

Сообщение от Seva Pletnev
"ещё раз -основы учите" на этом сайте я их прочел и ответа нужного не нашел.

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

Seva Pletnev 17.05.2013 14:40

Спасибо. Очень хорошо)

Seva Pletnev 12.06.2013 23:39

а с помощю css можно поварачивать?

Seva Pletnev 23.06.2013 23:39

Писал тут клас планет для создания модели солнечной системы, но чет не че не работает(
вот код:
<html><canvas id=c width=500 height=500</canvas> <script>
window.onload=function(){

c= document.getElementById('c');g= c.getContext('2d');

var planet=function(w,h,x,y,xCentr,yCentr,rad,speed,an gle,col) {
/*w,h это ширина и высота квадрата x,y его положение xCentr,yCentr это точка во круг которой врыщыется квадрат
rad это расстояние от центр. до квадрата speed это скорость квадрата angle это угол относительно точки вращения
col это цвет квадрата*/
that={
w:w,
h:h,
x:x,
y:y,
xCentr:xCentr,
yCentr:yCentr,
rad:rad,
speed:speed,
angle:angle,

move: function() {
x=xCentr+Math.cos(angle)*rad;
y=yCentr+Math.sin(angle)*rad;
angle+=speed;
}

draw: function() {
g.fillStyle=col;
g.fillRect(x,y,w,h);
}

};

return that;

};

var pandora=new planet(10,10,0,0,250,250,100,0.01,0,"#0f0");

setInterval(ris,30);

function ris(){
g.clearRect(0,0,500,500);
g.fillRect(0,0,500,500);
pandora.move();
pandora.draw();
}
}
</script></html>
я так и не полял где ошибка...Помоги исправить пожалуста:)

vadim5june 23.06.2013 23:57

<!DOCTYPE html>
<html><canvas id=c width=500 height=500</canvas> 
<script>
window.onload=function(){
c= document.getElementById('c');g= c.getContext('2d');
var planet=function(w,h,x,y,xCentr,yCentr,rad,speed,angle,col) {
that={
w:w,
h:h,
x:x,
y:y,
xCentr:xCentr,
yCentr:yCentr,
rad:rad,
speed:speed,
angle:angle,
move: function() {
x=xCentr+Math.cos(angle)*rad;
y=yCentr+Math.sin(angle)*rad;
angle+=speed;
}
,
draw: function() {
g.fillStyle=col;
g.fillRect(x,y,w,h);
}
};
return that;
};
var pandora=new planet(10,10,0,0,250,250,100,0.01,0,"#0f0");
setInterval(ris,30);
function ris(){
g.clearRect(0,0,500,500);
//g.fillRect(0,0,500,500);
pandora.move();
pandora.draw();
}
}
</script></html>


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