Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 17.08.2011, 10:22
Профессор
Отправить личное сообщение для Severtain Посмотреть профиль Найти все сообщения от Severtain
 
Регистрация: 25.04.2011
Сообщений: 280

Для вращения картинки через css3 необходимо создавать отдельные дивы! а если картинок и интерактивных объектов около 1000 для каждого делать?!
Ответить с цитированием
  #12 (permalink)  
Старый 17.08.2011, 10:38
Профессор
Отправить личное сообщение для Severtain Посмотреть профиль Найти все сообщения от Severtain
 
Регистрация: 25.04.2011
Сообщений: 280

Да и тогда по вашему методу проще создать n-ое количество холстов.. и спокойно вращать каждый элемент в отдельности.. но опять же! а если их будет около 1000!! ..
Ответить с цитированием
  #13 (permalink)  
Старый 17.08.2011, 11:10
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

полотно рисуется. затем вращение на необход угол .отрисовка картинки. вращение полотна назад -то есть вращение полотна на тотже угол что и было повёрнуто но со знаком минус.
Ответить с цитированием
  #14 (permalink)  
Старый 17.08.2011, 11:24
Профессор
Отправить личное сообщение для Severtain Посмотреть профиль Найти все сообщения от Severtain
 
Регистрация: 25.04.2011
Сообщений: 280

Я и пытаюсь это сделать! но ничего не получаеться!

Вот код набросал (только что):

<!DOCTYPE>
<html>
<head></head>
<body>
<canvas id="ci" width="720" height="404"></canvas>
<script>
function CanvasCenter(){
var i = new Image();
var i2 = new Image();
i.onload = function(){
var dl = i.width;
var c = document.getElementById("ci");
var context = c.getContext("2d");
var context2 = c.getContext("2d");
var beta = -0.02; //угол поворота, если минус то против часовой



setTimeout(function(){
context.save();
context.clearRect(0,0,dl,dl);
context.drawImage(i2, 0, 0);
context.restore();
context2.transform(Math.cos(beta), Math.sin(beta), -Math.sin(beta), Math.cos(beta), 0, 0);
context2.drawImage(i, 0, 0, dl, dl);
setTimeout(arguments.callee,10);
},0);
}
i.src = "book.png";
i2.src = "test_screen.png";
}
CanvasCenter();
</script>
</body></html>
Ответить с цитированием
  #15 (permalink)  
Старый 17.08.2011, 11:26
Профессор
Отправить личное сообщение для Severtain Посмотреть профиль Найти все сообщения от Severtain
 
Регистрация: 25.04.2011
Сообщений: 280

Если начинаю возвращать полотно обратно картинка становиться стационарной!
Ответить с цитированием
  #16 (permalink)  
Старый 17.08.2011, 11:32
Профессор
Отправить личное сообщение для Severtain Посмотреть профиль Найти все сообщения от Severtain
 
Регистрация: 25.04.2011
Сообщений: 280

Вот еще код!
Тут вообще ниче не крутиться!

<!DOCTYPE>
<html>
<head></head>
<body>
<canvas id="ci" width="720" height="404"></canvas>
<script>
function CanvasCenter(){
var i = new Image();
var i2 = new Image();
i.onload = function(){
var dl = i.width;
var c = document.getElementById("ci");
var context = c.getContext("2d");
var context2 = c.getContext("2d");

var beta = -0.02; //угол поворота, если минус то против часовой



setTimeout(function(){
context.restore();
context.save();
context2.save();
context.clearRect(0,0,dl,dl);
context.drawImage(i2, 0, 0);
context2.restore();

context2.transform(Math.cos(beta), Math.sin(beta), -Math.sin(beta), Math.cos(beta), 0, 0);
context2.drawImage(i, 0, 0, dl, dl);
setTimeout(arguments.callee,10);
},0);
}
i.src = "book.png";
i2.src = "test_screen.png";
}
CanvasCenter();
</script>
</body></html>
Ответить с цитированием
  #17 (permalink)  
Старый 17.08.2011, 11:46
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

и не будет. угол поворота в канве относительный а не абсолютный.
для анимации вращения чегото на фоне чегото угол нужно менять . тоесть поворот на 1 градус-возврат на 1 градус,поворот на 2 градуса-возврат на два градуса,поворот на 3 -возврат на 3. и так пока не дойдёшь до необходимого угла
и у канвы нужно для нормальной работы явно задавать и размеры и разрешение

Последний раз редактировалось dmitriymar, 17.08.2011 в 11:49.
Ответить с цитированием
  #18 (permalink)  
Старый 17.08.2011, 11:51
Профессор
Отправить личное сообщение для Severtain Посмотреть профиль Найти все сообщения от Severtain
 
Регистрация: 25.04.2011
Сообщений: 280

Вот например! И опять ничего! Все задано

..
setTimeout(function(){
{
сontext.rotate(-0.01);
сontext.drawImage (i, 0, 0,720,404);
сontext.rotate(0.01);
сontext.drawImage(i2, 0, 0, 125, 152);
}
..
Ответить с цитированием
  #19 (permalink)  
Старый 17.08.2011, 11:52
Профессор
Отправить личное сообщение для Severtain Посмотреть профиль Найти все сообщения от Severtain
 
Регистрация: 25.04.2011
Сообщений: 280

т.е. она опять стационарна!
Повернулась.. отрисовала! Вернула все обратно! .. что-то типо этого!
Ответить с цитированием
  #20 (permalink)  
Старый 17.08.2011, 12:08
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

var angl=0.01;
setTimeout(function(){
{
сontext.drawImage (i, 0, 0,720,404);|// рисуем фон
сontext.rotate(-angl);
сontext.drawImage(i2, 0, 0, 125, 152);// рисуем чегото на фоне
сontext.rotate(angl);
angl=angl+0.01;
}

както так

Последний раз редактировалось dmitriymar, 17.08.2011 в 12:11.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запуск Canvas в IE9! Severtain Общие вопросы Javascript 7 11.04.2012 12:36
canvas: working with canvas Severtain Общие вопросы Javascript 0 01.07.2011 17:29
Добавить на canvas еще один елемент greengarlic Общие вопросы Javascript 5 22.09.2010 10:16
И еще одна тема про canvas ;) 13rust Элементы интерфейса 8 21.09.2010 13:58
работа Canvas nemo Общие вопросы Javascript 0 25.05.2009 04:02