Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.01.2013, 15:24
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

css3 матрица Библиотека
есть в css3 transform такая штука как матрица
видел ли ктонибудь библиотеку способную выполнять преобразования над этой матрицей.

что то вроде

matrix=new Matrix(0,0,0,0,0,0)
matrix.rotate(12);
matrix.scale(2);
тоесть применял операции к матрице

мне нестолько библиотека нужна, сколько образцы формул

UPD.
вот стоит задать вопрос как тутже находится ответ
https://github.com/heygrady/transform/tree/master/src
вроде то что нужно

Последний раз редактировалось DjDiablo, 19.01.2013 в 15:35.
Ответить с цитированием
  #2 (permalink)  
Старый 19.01.2013, 15:37
Аватар для megaupload
Профессор
Отправить личное сообщение для megaupload Посмотреть профиль Найти все сообщения от megaupload
 
Регистрация: 18.01.2013
Сообщений: 1,098

А зачем нужна матрица и что она делает? Я часто видел это но не понимал;
Ответить с цитированием
  #3 (permalink)  
Старый 19.01.2013, 17:13
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Цитата:
UPD.
вот стоит задать вопрос как тутже находится ответ


Цитата:
А зачем нужна матрица и что она делает? Я часто видел это но не понимал;
Это матрица аффинных преобразований, если коротко, то любая последовательность трансформаций представляется этой матрицей и вместо перечисления каждый раз различный свойств (будь то rotate или translate) мы можем просто применить матрицу.
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 19.01.2013 в 17:25.
Ответить с цитированием
  #4 (permalink)  
Старый 20.01.2013, 09:09
Аватар для megaupload
Профессор
Отправить личное сообщение для megaupload Посмотреть профиль Найти все сообщения от megaupload
 
Регистрация: 18.01.2013
Сообщений: 1,098

И зачем это нужно если можно просто ротейты и скейлы прописать и комп все сам вычислит?
Ответить с цитированием
  #5 (permalink)  
Старый 20.01.2013, 10:24
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от megaupload Посмотреть сообщение
И зачем это нужно если можно просто ротейты и скейлы прописать и комп все сам вычислит?
для того, чтобы добавить 10 градусов вращения к уже трансформированному элементу, например.

Сообщение от DjDiablo
мне нестолько библиотека нужна, сколько образцы формул
http://www.w3.org/TR/SVG/coords.html

спека всему голова.

я брал отсюда, когда делал трансформации для IE.
Ответить с цитированием
  #6 (permalink)  
Старый 20.01.2013, 11:55
Аватар для megaupload
Профессор
Отправить личное сообщение для megaupload Посмотреть профиль Найти все сообщения от megaupload
 
Регистрация: 18.01.2013
Сообщений: 1,098

А покажите пожалуйста примеры если вам не трудно;
Ответить с цитированием
  #7 (permalink)  
Старый 20.01.2013, 15:12
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Цитата:
А покажите пожалуйста примеры
пример где невозможно обойтись без матрицы

допустим я хочу узнать на какой угол сейчас повёрнут элемент.
причём повёрнут он в CSS
ниже небольшой эксперемент

1) Попробуем извлечь значение transform из стиля элемента. (но там нечего нет так как в style мы незаписывали нечего)
2) Попробуем извлечь значение transform из расчитанного стиля. (но тут я получаю тоько матрицу в которой описаны все преобразования)
3) раз удалось получить только матрицу, то единственный способ узнать градусы это вычислить градусы из матрицы.

<!DOCTYPE HTML>
<html>
  <head> </head>
  
  <style>
  #div1 {
    background-color:#ddd;
    height: 100px; width: 100px;
    transform:rotate(45deg);
    -ms-transform:rotate(45deg); /* IE 9 */
    -moz-transform:rotate(45deg); /* Firefox */
    -webkit-transform:rotate(45deg); /* Safari and Chrome */
    -o-transform:rotate(45deg);
  }  
  </style>
  
  <body>
    <br/><br/>
    <div id="div1">javascript.ru</div> 		
    
  <script>
    //пример 1
    var el=document.getElementById('div1'),
	    style=el.style,
        transform = style.getPropertyValue("-webkit-transform") ||
                    style.getPropertyValue("-moz-transform") ||
                    style.getPropertyValue("-ms-transform") ||
                    style.getPropertyValue("-o-transform") ||
                    style.getPropertyValue("transform");
    alert(transform);
    console.log(style);
    
    //пример 2
    style=window.getComputedStyle(el, null),
    transform = style.getPropertyValue("-webkit-transform") ||
                    style.getPropertyValue("-moz-transform") ||
                    style.getPropertyValue("-ms-transform") ||
                    style.getPropertyValue("-o-transform") ||
                    style.getPropertyValue("transform");
         
     alert(transform);

     //пример 3
     alert('сейчас произведём расчёт градусов');    
     matrix = transform.split( '(' )[1].split( ')' )[0].split(',');	
     alert( Math.round(Math.atan2(matrix[1], matrix[0]) * (180/Math.PI)) );      
     
    </script>

  </body>
</html>
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 20.01.2013 в 15:48.
Ответить с цитированием
  #8 (permalink)  
Старый 20.01.2013, 16:08
Аватар для megaupload
Профессор
Отправить личное сообщение для megaupload Посмотреть профиль Найти все сообщения от megaupload
 
Регистрация: 18.01.2013
Сообщений: 1,098

CSSStyleDeclaration.prototype вау тут много интересного, спасибо;

getPropertyValue так можно получать применяемые к элементу в данный момент свойства?
Ответить с цитированием
  #9 (permalink)  
Старый 20.01.2013, 22:30
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от DjDiablo
допустим я хочу узнать на какой угол сейчас повёрнут элемент.
забыл

можно юзать getPropertyCSSValue - там очень всё удобно, и не надо проводить никаких декомпозиций матриц!

оно НЕ deprecated для вычисленных стилей.
Ответить с цитированием
  #10 (permalink)  
Старый 21.01.2013, 09:29
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

Сообщение от DjDiablo Посмотреть сообщение
есть в css3 transform такая штука как матрица
видел ли ктонибудь библиотеку способную выполнять преобразования над этой матрицей.

что то вроде

matrix=new Matrix(0,0,0,0,0,0)
matrix.rotate(12);
matrix.scale(2);
тоесть применял операции к матрице

мне нестолько библиотека нужна, сколько образцы формул

UPD.
вот стоит задать вопрос как тутже находится ответ
https://github.com/heygrady/transform/tree/master/src
вроде то что нужно
матрицы не "применяются", а умножаются)

var transformMatrix= Matrix.multipy( new RotationMatrix(12),
new ScaleMatrix(2) )
__________________
.ня
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Библиотека jQuery UI w46823 AJAX и COMET 1 27.04.2012 15:36
Библиотека работы c CSS net.me.art Библиотеки/Тулкиты/Фреймворки 1 19.01.2012 23:35
Библиотека RightJS Riim Библиотеки/Тулкиты/Фреймворки 1 26.07.2010 10:03
CSS3 3 примера flash и сss3 mycoding Оффтопик 4 25.07.2010 15:15
Очень полезная библиотека Phoenix AJAX и COMET 6 22.05.2008 14:34