[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Рисование в JS
leha216
Здравствуйте!
Вопрос в следующем: можно ли В ПРИНЦИПЕ рисовать с пом. JS линии также, как в AutoCAD -
то есть: кликается мышкой в некой рабочей области (получается начальная точка), а затем до следующего клика за курсором тянется линия (от начальной точки и до точки положения курсора) и при последующем клике образуется линия между двумя точками - далее процесс повторяется
Всем ответившим , БОЛЬШОЕ СПАСИБО!!!!



Спустя 3 часа, 56 минут, 56 секунд (10.08.2008 - 23:27) Viking написал(а):
Цитата(leha216 @ 10.8.2008, 20:30) [snapback]45771[/snapback]
Здравствуйте!
Вопрос в следующем: можно ли В ПРИНЦИПЕ рисовать с пом. JS линии также, как в AutoCAD -
то есть: кликается мышкой в некой рабочей области (получается начальная точка), а затем до следующего клика за курсором тянется линия (от начальной точки и до точки положения курсора) и при последующем клике образуется линия между двумя точками - далее процесс повторяется
Всем ответившим , БОЛЬШОЕ СПАСИБО!!!!

нет

но чисто для изврата вот пример только одной такой линии (работает только в опере)

Код
<body bgcolor=white>
</body>
<script>
window.onclick=clc;
// var ev=window.event;
var old_n=0;
var max_n=0;
var flag="none";
var st_x,st_y;
function clc()
{

if(flag=="none" || flag=="unset") {
var ev=window.event;
st_x=ev.clientX;
st_y=ev.clientY;
flag="set";
window.onmousemove=line;
} else if(flag=="set") {
window.onmousemove="";
flag="unset";
}
}

function line()
{
var ev=window.event;
var new_n=Math.max(Math.abs(ev.clientX-st_x),Math.abs(ev.clientY-st_y));
if(max_n<new_n) for(var i=max_n;i<new_n;i++) {
var div=document.createElement("div");
div.style.background="black";
div.style.width=1;
div.style.height=1;
div.setAttribute("name","div"+i);
document.body.appendChild(div);
div.style.position="absolute";
max_n=new_n;
}
for(var i=0;i<new_n;i++) {
var div=document.all("div"+i);
var x=st_x+(ev.clientX-st_x)*i/new_n;
var y=st_y+(ev.clientY-st_y)*i/new_n;
div.style.left=x;
div.style.top=y;
}
if(old_n>new_n) for(var i=new_n;i<old_n;i++) document.all("div"+i).style.display="none";
if(old_n<new_n) for(var i=old_n;i<new_n;i++) document.all("div"+i).style.display="inline";
old_n=new_n;
}
</script>

Спустя 12 минут, 52 секунды (10.08.2008 - 23:40) Viking написал(а):
хотя оказывается не все это извратом считают, вот тут даже какая-то библиотека есть

Спустя 2 дня, 18 часов, 25 минут, 56 секунд (13.08.2008 - 18:06) Viking написал(а):
хех, а понравилось мне это дело...

(только для оперы)
Код
<body bgcolor=white>
</body>
<script>
window.onclick=clc;
var old_n=0;
var max_n=0;
var new_n=0;
var flag="none";
var st_x,st_y;
function clc()
{
old_n=new_n;
if(flag=="none" || flag=="unset") {
var ev=window.event;
st_x=ev.clientX;
st_y=ev.clientY;
flag="set";
window.onmousemove=line;
} else if(flag=="set") {
window.onmousemove="";
flag="unset";
}
}

function line()
{
var ev=window.event;
new_n=old_n+Math.max(Math.abs(ev.clientX-st_x),Math.abs(ev.clientY-st_y));
if(max_n<new_n) {
for(var i=max_n;i<new_n;i++) {
var div=document.createElement("div");
div.style.background="black";
div.style.width=1;
div.style.height=1;
div.setAttribute("name","div"+i);
document.body.appendChild(div);
div.style.position="absolute";
}
max_n=new_n;
}
for(var i=old_n;i<new_n;i++) {
var div=document.all("div"+i);
var x=st_x+(ev.clientX-st_x)*(i-old_n)/(new_n-old_n);
var y=st_y+(ev.clientY-st_y)*(i-old_n)/(new_n-old_n);
div.style.left=x;
div.style.top=y;
document.all("div"+i).style.display="inline";
}
if(max_n>new_n) for(var i=new_n;i<max_n;i++) document.all("div"+i).style.display="none";
}
</script>

Спустя 1 месяц, 12 дней, 23 часа, 1 минута, 3 секунды (26.09.2008 - 17:07) ticktack написал(а):
Спасибо, тоже очень понравилось!! а есть еще что нибудь подобное???=)



__________________
бильярдные столы

Спустя 13 дней, 4 часа, 31 минута, 1 секунда (9.10.2008 - 21:38) pokotogoroh написал(а):
Может у кого-то ещё есть примеры?
Поделитесь
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.