Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
1 / 1 / 0
Регистрация: 11.04.2011
Сообщений: 8

Нужно разработать модуль, с помощью которого можно торить графики

11.04.2011, 13:24. Показов 1403. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Народ, нужно нарисовать график, точнее разработать модуль, с помощью которого можно торить графики. Т.е. Функцию рисования осей, рисование точки. Вот и все. Но есть проблема я в java ничего не понимаю. все делаю на Delphi. Накопал библиотеку graphics.js с сайта http://www.karlson.ru/.
Навоял маленький файлик, но ничего не работает, точнее, если на обработчик нажатия кнопки повесить только функцию рисования осей - все работает. А в таком варианте ничего не высвечивается. Намекните, что не так.
Code
1
<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'><HTML><HEAD><TITLE>JavaScriptGraphics</TITLE><META http-equiv=Content-Type content='text/html; charset=windows-1251'><STYLE type=text/css>INPUT.active {  BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; BORDER-LEFT: #000000 1px solid; BORDER-BOTTOM: #000000 1px solid}INPUT.passive {    BORDER-RIGHT: #000000 0px solid; BORDER-TOP: #000000 0px solid; BORDER-LEFT: #000000 0px solid; COLOR: #c0c0c0; BORDER-BOTTOM: #000000 0px solid}</STYLE><SCRIPT src='JavaScriptGraphics.files/graphics.js' type=text/javascript></SCRIPT><SCRIPT type=text/javascript><!--var gc= new GCanvas(600,400,white,1);  // сама канваvar output = new GHTMLOutput();var deltax,deltay:float;             // Расстояние между двумя соседними точкамиfunction MinMaxX(minx,maxx){deltax=(gc.width-20)/(maxx-minx)     //коэффициент растяжения по оси х}function MinMaxY(miny,maxy){deltay=(gc.height-20)/(maxy-miny)  //коэффициент растяжения по оси у}function PutPoint(x,y,color){x=(x-minx)*deltax; // Переводим координаты по Х от условных в абсолютные на канвеx=x+10; // отступ от левого краяy=(y-miny)*deltay; // Переводим координаты по Y от условных в абсолютные на канвеx=x+10; // отступ от левого краяgc.draw(x,y,color);output.setup(this.document,'lines');output.print(gc);}function PlotAxis(x,y) {    // нарисоват осиgc.clear();gc.draw(x,y, sc);gc.line(40,10,40,y-10);gc.line(10,y-40,x-10,y-40);output.setup(this.document,'lines');output.print(gc);}function plot() {//gc.clear();// sc = ((sc+step) % white); startx ++; for (x=0; x<gc.width; x++) {   y = Math.round(starty);   gc.draw(x,x, sc);} gc.circle(100,100,100, sc); output.setup(this.document,'lines'); output.print(gc);}function AddPoint(x,y) {}// --></SCRIPT><META content='MSHTML 6.00.2800.1106' name=GENERATOR></HEAD><BODY><FORM>Click <INPUT class=active onclick='PlotAxis(600,400);MinMaxX(100,200);MinMaxY(100,200);PutPoint(150,250,Red);' type=button value=Start! name=start_plot> to start drawing the plot. Click <INPUT class=passive onclick='' type=button value=Stop! name=stop_plot> to stop drawing the plot. </FORM><DIV id='lines' style='position:relative;top:0;left:0;height:400;width:400;'>[plot]</DIV></BODY></HTML>
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.04.2011, 13:24
Ответы с готовыми решениями:

Модуль или компонент, с помощью которого можно будет оставлять отзывы
Большое спасибо! Не подскажите модуль или компонент, с помощью которого можно будет оставлять отзывы, писать не только текстом но и...

С помощью каких классов можно обращаться к настройкам графики Windows
Здравствуйте! Подскажите пожалуйста, с помощью каких классов можно обращаться к настройкам графики windows? В частности, к настройкам...

Класс с помощью которого можно рисовать прямоугольники
Есть класс с помощью которого можно рисовать прямоугольники, нужно сделать так что-бы в этих прямоугольниках был текст Здесь сделано...

8
1 / 1 / 0
Регистрация: 11.04.2011
Сообщений: 8
11.04.2011, 13:25  [ТС]
Как-то переновы все посъезжали. Ниже код html

<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'>

<HTML><HEAD><TITLE>JavaScriptGraphics</TITLE>
<META http-equiv=Content-Type content='text/html; charset=windows-1251'>
<STYLE type=text/css>INPUT.active {
BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; BORDER-LEFT: #000000 1px solid; BORDER-BOTTOM: #000000 1px solid
}
INPUT.passive {
BORDER-RIGHT: #000000 0px solid; BORDER-TOP: #000000 0px solid; BORDER-LEFT: #000000 0px solid; COLOR: #c0c0c0; BORDER-BOTTOM: #000000 0px solid
}
</STYLE>

<SCRIPT src='JavaScriptGraphics.files/graphics.js'
type=text/javascript></SCRIPT>
<SCRIPT type=text/javascript>
<!--
var gc= new GCanvas(600,400,white,1); // сама канва
var output = new GHTMLOutput();
var deltax,deltay:float; // Расстояние между двумя соседними точками

function MinMaxX(minx,maxx){
deltax=(gc.width-20)/(maxx-minx) //коэффициент растяжения по оси х
}
function MinMaxY(miny,maxy){
deltay=(gc.height-20)/(maxy-miny) //коэффициент растяжения по оси у
}

function PutPoint(x,y,color){
x=(x-minx)*deltax; // Переводим координаты по Х от условных в абсолютные на канве
x=x+10; // отступ от левого края
y=(y-miny)*deltay; // Переводим координаты по Y от условных в абсолютные на канве
x=x+10; // отступ от левого края
gc.draw(x,y,color);
output.setup(this.document,'lines');
output.print(gc);
}

function PlotAxis(x,y) { // нарисоват оси
gc.clear();
gc.draw(x,y, sc);
gc.line(40,10,40,y-10);
gc.line(10,y-40,x-10,y-40);
output.setup(this.document,'lines');
output.print(gc);
}


function plot() {
//gc.clear();
// sc = ((sc+step) % white);
startx ++;
for (x=0; x<gc.width; x++) {
y = Math.round(starty);
gc.draw(x,x, sc);
}
gc.circle(100,100,100, sc);
output.setup(this.document,'lines');
output.print(gc);
}

function AddPoint(x,y) {
}

// -->
</SCRIPT>

<META content='MSHTML 6.00.2800.1106' name=GENERATOR></HEAD>
<BODY>
<FORM>Click <INPUT class=active onclick='PlotAxis(600,400);MinMaxX(100,2 00);MinMaxY(100,200);PutPoint(150,250,Re d);' type=button value=Start! name=start_plot>
to start drawing the plot. Click <INPUT class=passive onclick='' type=button value=Stop! name=stop_plot>
to stop drawing the plot. </FORM>

<DIV id='lines' style='position:relative;top:0;left:0;he ight:400;width:400;'>[plot]</DIV>

</BODY></HTML>
0
4 / 4 / 3
Регистрация: 25.05.2009
Сообщений: 2,576
11.04.2011, 14:39
у меня приведённый пример вообще не работает, первая ошибка начинается с 18 строки
0
0 / 0 / 0
Регистрация: 08.12.2010
Сообщений: 110
11.04.2011, 15:32
Это проблема этого модуля.
У меня даже пример с сайта разработчика не стал работать.
0
1 / 1 / 0
Регистрация: 11.04.2011
Сообщений: 8
12.04.2011, 11:08  [ТС]
У меня примеры работают, даже то, что я прислал работает, если выполнить указанную выше последовательность. Но что делать в целом не понятною.
0
1 / 1 / 0
Регистрация: 11.04.2011
Сообщений: 8
12.04.2011, 13:54  [ТС]
Я нашел уже много модулей на JavaScript, позволяющие рисовать на канве. Но почему-то в любом примере, если начать нажимать на кнопку прорисовки линии, то каждый раз будет она будет прорисовываться все медленнее.
Даже, если взять http://www.walterzorn.com/jsgraphics/jsgraphics_e.htm в качестве примера.
0
0 / 0 / 0
Регистрация: 08.12.2010
Сообщений: 110
12.04.2011, 14:04
А что ты от нас хочешь?
Чтобы кто-то из нас просмотрел предложенные тобой варианты, выбрал лучший, убрал различные ошибки, а потом дал тебе на тарелочке с голубой каемочкой?
0
1 / 1 / 0
Регистрация: 11.04.2011
Сообщений: 8
12.04.2011, 14:46  [ТС]
Я говорю об эффекте, который наблюдается во всех примерах (от разных производителей). Если это какая-то реальная проблема при работе JavaScript с графикой, то может не париться вовсе, а думать от том, как можно сделать используя другой инструментарий.
0
1 / 1 / 0
Регистрация: 11.04.2011
Сообщений: 8
12.04.2011, 15:06  [ТС]
Вот это объяснение.

>Представь что каждый пиксель это отдельный слой на абсолютной позици, >сколько таких создается для каждой линии? Старые линии нужно удалять, >браузер потребляет кучу памяти, в какой то момент браузер захлебнётся в >этих слоях и полностью повиснет. Отсюда вывод, для графиков используем >либо флеш, либо SVG.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.04.2011, 15:06
Помогаю со студенческими работами здесь

Оператор, с помощью которого можно прекратить выполнение цикла...
Задача:назвать оператор, с помощью которого можно выскочить из цикла(перейти к следующему за циклом оператору) и оператор, с помощью...

Есть ли элемент (модуль) при помощи которого можно ввести уравнение/выражение
Мне сказали что на C# есть элемент(модуль) при помощи которого можно ввести уравнение/выражение на подобе Маткада. Кто нибудь в курсе? И...

алгоритм с помощью которого он определит можно ли поместить:а)Круг данного радиуса
2)Составьте для вычислителя алгоритм с помощью которого он определит можно ли поместить: а)Круг данного радиуса в квадрат с данной...

Реализовать метод, с помощью которого из предыдущей строки массива можно получить следующую
Добрый День! Мне нужно реализовать метод, с помощью которого из предыдущей строки массива можно получить следующую. Мне интересно,...

Создать меню, с помощью которого можно выбрать цвет заливки текстового окна
В построенном окне создать меню, с помощью которого можно выбрать цвет заливки текстового окна. Пункты меню 1 красный цвет 2 зеленый...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru