Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Рисование и js (https://javascript.ru/forum/dom-window/8993-risovanie-i-js.html)

Drakonee 23.04.2010 15:50

Рисование и js
 
Можно ли на js , dhtml написать программу, с помощью которой пользователь может нарисовать, например, прямую как в painte (т.е. щелкнув на одном месте и потянув мышь) или просто аналог рисования кисточкой в painte?

Gvozd 23.04.2010 16:14

SVG, canvas, и прочее
ваш вопрос уже обсуждался на форуме неоднократно

Skipp 23.04.2010 16:19

Только учти, что всё перечисленное выше не все браузеры поддерживают и далеко не всех версий, а точнее можно сказать только последние версии.

Gozar 24.04.2010 21:35

Цитата:

Сообщение от Drakonee (Сообщение 52807)
Можно ли на js , dhtml написать программу, с помощью которой пользователь может нарисовать, например, прямую как в painte (т.е. щелкнув на одном месте и потянув мышь) или просто аналог рисования кисточкой в painte?

То что вы спрашивает можно реализовать в большинстве браузеров и довольно просто. Линия это набор точек с определенными координатами. Фотошоп сделать не получиться, но paint запросто, хотя и не понятно зачем, легче всего написать на actionscript3.

Paguo-86PK 27.04.2010 06:07

Он-лайн Paint
 
canvas paint:dance:

Drakonee 22.06.2010 19:57

почему эта штука только в опере работает?

<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>

рони 22.06.2010 23:51

http://jsdraw2d.jsfiction.com/


Часовой пояс GMT +3, время: 22:48.