Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.10.2013, 00:40
Новичок на форуме
Отправить личное сообщение для Ninja Посмотреть профиль Найти все сообщения от Ninja
 
Регистрация: 27.01.2011
Сообщений: 5

SVG масштабирование
Нужно масштабировать SVG-холст, но без изменения размеров лежащих внутри объектов.

Например: на картинке черный квадрат - исходный, розовый - после увеличения размера холста.
Увеличиваю так:
<svg width="1500" height="1500" version="1.1" viewBox="0 0 500 500">

Нужно получить такую позицию чёрного квадрата после масштабирования:
Ответить с цитированием
  #2 (permalink)  
Старый 18.10.2013, 14:52
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Вот тебе две картинки с разным размером холста но выглядещие совершенно одинаково
Секрет в том что viewBox соответствует размеру холста SVG

<svg width="400px" height="100px" viewBox="0 0 400 100">
  <g id="square">
      <rect x="10" y="10" width="30" height="30" style="fill: none; stroke: black;"/>
  </g>  
</svg>  
</br>

<svg width="200px" height="100px" viewBox="0 0 200 100">
  <g id="square">
      <rect x="10" y="10" width="30" height="30" style="fill: none; stroke: black;"/>
  </g>  
</svg>
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 18.10.2013 в 14:55.
Ответить с цитированием
  #3 (permalink)  
Старый 18.10.2013, 15:15
Новичок на форуме
Отправить личное сообщение для Ninja Посмотреть профиль Найти все сообщения от Ninja
 
Регистрация: 27.01.2011
Сообщений: 5

В таком случае и координаты у обеих квадратов будут одинаковы(визуально будут лежать в одном и том же месте). Мне нужно чтобы при изменении масштаба появлялся сдвиг как у розового квадрата, но размер оставался тем же.
Ответить с цитированием
  #4 (permalink)  
Старый 18.10.2013, 15:27
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Цитата:
Нужно масштабировать SVG-холст, но без изменения размеров лежащих внутри объектов.
Я и сделал без изменения

Если ширина менятся недолжна а должны только координаты то пересчитывай скриптом позицию каждого ребенка холста
var коэф=текущаяШиринаХолста/оригинальнаяШиринаХолста;
ТекущийXэлемента=ОригнальныйXэлемента * коэф;
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 18.10.2013 в 15:35.
Ответить с цитированием
  #5 (permalink)  
Старый 18.10.2013, 16:12
Новичок на форуме
Отправить личное сообщение для Ninja Посмотреть профиль Найти все сообщения от Ninja
 
Регистрация: 27.01.2011
Сообщений: 5

Спасибо, формула то что надо
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание SVG элемента и вставка на страницу FINoM Events/DOM/Window 3 13.09.2015 16:47
SVG CSS, SVG to WOFF kobezzza Firefox/Mozilla 2 29.03.2013 15:59
масштабирование и фон в svg vogdb Элементы интерфейса 0 04.02.2012 17:10
Inline SVG as background Paguo-86PK Элементы интерфейса 0 16.12.2011 20:12
Простой графический движок: SVG vs Canvas stryaponoff Общие вопросы Javascript 5 29.06.2010 16:59