Показать сообщение отдельно
  #11 (permalink)  
Старый 17.05.2011, 05:15
Аватар для poorking
prodigy
Отправить личное сообщение для poorking Посмотреть профиль Найти все сообщения от poorking
 
Регистрация: 01.11.2010
Сообщений: 503

Сообщение от Taurus1195
alt="" coords="230,236, 231,236, 232,2........
Вы понимаете, что если вы хотите менять масштаб цветка, то нужно все эти сотни координат тоже менять?(если только не воспользоваться css transform: scale - что не кроссбраузерно)
Составьте матрицу координат, определяйте размер экрана в скрипте, опишите математически зависимости все эти и потом создавайте area с координатами, зависящими от разрешения ИМХО легче подготовить несколько "пачек" координат для разных разрешений, хотя если у вас супер с математикой, то труда не составит, хотя все довольно просто, отделить горизонтальные координаты от вертикальных и масштабировать отдельно, чем каждую точку высчитывать.

А еще лучше, оставить все как есть.

UPD
вот даже пример масштабирования таких координат без использования scale, он конечно требует доработки, а именно, координаты нужно еще смещать по оси, но однакож(на canvas для наглядности)

<!DOCTYPE html>

<html><head>

<meta charset = "utf-8" />

<script type = "text/javascript">
function $(id){
	return document.getElementById(id);
}

window.onload = function(){
	var cnx = $("#canvas").getContext("2d");
	
	
	function each(arr, cb){
		for(var i = 0, il = arr.length; i < il; i ++){
			if(i in arr){
				arr[i] = cb.call(arr[i], i);
			}
		}
		return arr;
	}
	
	var coords = [
					150, 200,
					140, 180,
					130, 155,
					120, 110,
					130, 90,
					140, 80,
					150, 75,
					160, 80,
					170, 90,
					180, 110,
					170, 155,
					160, 180,
					150, 200
				];
	
	function drawLeap(c, crds){
		c.clearRect(0, 0, c.canvas.width, c.canvas.height);
		
		c.beginPath();
		c.moveTo(crds[0],crds[1]);
		
		for(var i = 2; i < crds.length; i+= 2){
			c.lineTo(crds[i], crds[i+1]);	
		}
		
		c.stroke();
		c.closePath();
	}
	
	
	drawLeap(cnx, coords);
	
	
	$("#plus").onclick = function(){
		drawLeap(cnx, each(coords, function(){
			return this * 1.1;
		}));
	}
	
	
	$("#minus").onclick = function(){
		drawLeap(cnx, each(coords, function(){
			return this * 0.9;
		}));
	}
}
</script>


</head><body>
<div>
<h1>Масштабирование без scale</h1>

<canvas id = "#canvas" width = "300" height = "300"></canvas>

<button id = "#minus">-</button>
<button id = "#plus">+</button>

</div>
</body></html>

Если вы пришли не за готовым кодом в ответ на
Сообщение от Taurus1195
Вопрос: какой тег JavaScript куда подставить чтоб размер кнопки менялся пропорционально изменению разрешения экрана?
то, надеюсь, советы помогут, если не хотите делать сами, найдутся люди, кто не прочь заработать
__________________
readOnly
Ответить с цитированием