Програмирование графических примитивов в духе QBasic

 
1 2 3 4 5
+
-
edit
 

Balancer

администратор
★★★★★
Сразу два человека за последние два дня вдруг захотели чего-нибудь в духе старого бейсиковского
code text
  1. SCREEN 7
  2. COLOR 14, 8
  3. PRINT "Пример графики на QBasic:"
  4. LINE (100, 50)-(220, 150), 13, B
  5. CIRCLE (160, 100), 20, 11
  6. CIRCLE (160, 100), 30, 12
  7. CIRCLE (160, 100), 40, 14


В плане языка на замену Бейсику я для себя выбор давно сделал: Python. Когда-то и библиотеки попадались примерно такого же уровня работы. Понятно, не слишком сложно задействовать и мощные Cairo или pygame, но часто писать лишние пару строк (и помнить аргументы) - уже ломает. Сейчас бегло погуглил для этих людей, попался интересный пакет GASP:
code text
  1. # -*- coding: utf-8 -*-
  2.  
  3. from gasp import *
  4.  
  5. gray    = 128, 128, 128
  6. red             = 255, 0, 0
  7. green   = 0, 255, 0
  8. blue    = 0, 0, 255
  9. yellow  = 255, 255, 0
  10. white   = 255, 255, 255
  11.  
  12. begin_graphics(background=gray)
  13.  
  14. Text("Пример графики на GASP", (0,0), white)
  15. Box((110, 100), 110, 100, color=green)
  16. Circle((160, 100), 20, color=red)
  17. Circle((160, 100), 30, color=blue)
  18. Circle((160, 100), 40, color=yellow)
  19.  
  20. update_when('key_pressed')
  21. end_graphics()


Результат:


Имейте в виду, если кому-то понадобится :)
 3.6.123.6.12

yacc

старожил
★★☆
Balancer> Имейте в виду, если кому-то понадобится :)
Ну это ИМХО для детей - они же в роликах это и показывают как это делать. :)
Польза от этого только в том, что это Питон - весьма неплохой язык
 3.6.103.6.10

Balancer

администратор
★★★★★
yacc> Ну это ИМХО для детей

Ты не представляешь, сколько у нас сейчас научных работ так обсчитывается и показывается :D
 3.6.123.6.12
+
+1
-
edit
 

yacc

старожил
★★☆
Balancer> Ты не представляешь, сколько у нас сейчас научных работ так обсчитывается и показывается :D
А что, про Excel/OO уже забыли для визуализации? Или хотя бы GNUPlot... - так же гораздо проще с числовыми данными. :)
 3.6.103.6.10

Balancer

администратор
★★★★★
Balancer>> Ты не представляешь, сколько у нас сейчас научных работ так обсчитывается и показывается :D
yacc> А что, про Excel/OO уже забыли для визуализации?

Это другая история :)

yacc> Или хотя бы GNUPlot...

А это - третья :)
 3.6.123.6.12
RU Dem_anywhere #03.11.2010 16:29
+
-
edit
 

Dem_anywhere

аксакал
★☆
Такое впечатление, что это сильно отличается...
code csharp
  1. e.Graphics.DrawLine(Pens.LightGray, 0, 0, 256, 256);
  2. e.Graphics.DrawLine(Pens.LightGray, 0, 256, 256, 0);
 3.5.153.5.15
+
-
edit
 

Balancer

администратор
★★★★★
Dem_anywhere> Такое впечатление, что это сильно отличается...

Что такое "e"? ;)

А если вместо "0, 256, 256, 0" написать "256, 256, 0, 0"?
 3.6.123.6.12

yacc

старожил
★★☆
Balancer> Это другая история :)
Balancer> А это - третья :)
э... а причем тут научные работы? :) Я еще в лохматом 94-97-м считал на паскале/фортране/С и смотрел результаты графером ( была такая прога - grapher.exe ), чтобы потом пристыковать это к диплому в TeX ...
Даже тогда мне в голову не приходило рисовать это руками...
 3.6.103.6.10

Balancer

администратор
★★★★★
yacc> э... а причем тут научные работы? :)

Ну, вот, практика такая :)

yacc> Даже тогда мне в голову не приходило рисовать это руками...

Так не про тебя же речь идёт :D
 3.6.123.6.12

yacc

старожил
★★☆
Balancer> Так не про тебя же речь идёт :D
разумеется :)

Balancer> Ну, вот, практика такая :)
Очень удивлен я такой практике... :P
 3.6.103.6.10
RU Владимир Малюх #03.11.2010 17:57  @Balancer#03.11.2010 15:08
+
+1
-
edit
 
Balancer> Ты не представляешь, сколько у нас сейчас научных работ так обсчитывается и показывается :D


У нас СТОЛЬКО научных работ? Если же серьезно, то болшинство, вов всяком случае среди моих знакомых ученых, используют Mathcad.
Maschinen muessen "idiotensicher" werden  7.07.0
RU Balancer #03.11.2010 22:44  @Владимир Малюх#03.11.2010 17:57
+
-
edit
 

Balancer

администратор
★★★★★
В.М.> Если же серьезно, то болшинство, вов всяком случае среди моих знакомых ученых, используют Mathcad.

Так я нигде и не говорил за всех. И даже за большинство :)
 3.6.113.6.11
US Naturalist #03.11.2010 23:31  @Balancer#03.11.2010 13:59
+
-
edit
 

Naturalist

аксакал

Balancer> Сразу два человека за последние два дня вдруг захотели чего-нибудь в духе старого бейсиковского

Не пробовал просто экспортировать графику в HTML 5?
В принципе, практически тоже самое.
 6.0.472.636.0.472.63
RU Balancer #04.11.2010 09:20  @Naturalist#03.11.2010 23:31
+
-
edit
 

Balancer

администратор
★★★★★
Naturalist> Не пробовал просто экспортировать графику в HTML 5?

?

Naturalist> В принципе, практически тоже самое.

Каким боком? :)
 3.6.113.6.11
+
-
edit
 

tarasv

опытный

Balancer> Каким боком? :)

context.moveTo(10, 10);
context.lineTo(100, 10);
context.lineTo(10, 100);
context.lineTo(10, 10);

Или надо обязательно без точечки?
 3.6.123.6.12
+
-
edit
 

Balancer

администратор
★★★★★
tarasv> Или надо обязательно без точечки?

Нет. Вопрос в обёртке :) И в сопутствующих вычислениях. И даже в математических библиотеках :D

А если ещё поднять вопрос отладки, пошагового выполнения?
 3.6.113.6.11
US Naturalist #04.11.2010 15:19  @Balancer#04.11.2010 09:20
+
-
edit
 

Naturalist

аксакал

Naturalist>> Не пробовал просто экспортировать графику в HTML 5?
Balancer> ?
code html4strict
  1. <html>
  2. <head>
  3. <script type="application/x-javascript">
  4. function draw() {
  5. var canvas = document.getElementById("canvas");
  6. if (canvas.getContext) {
  7. var ctx = canvas.getContext("2d");
  8.  
  9. ctx.fillStyle = "rgb(40,0,0)";
  10. ctx.fillRect (20, 20, 65, 60);
  11.  
  12. ctx.fillStyle = "rgba(0, 0, 160, 0.5)";
  13. ctx.fillRect (40, 40, 65, 60);
  14. }
  15. }
  16. </script>
  17. </head>
  18. <body onLoad="draw()">
  19. <canvas id="canvas" width="150" height="150"></canvas>
  20. </body>
  21. </html>
 6.0.472.636.0.472.63
RU Balancer #04.11.2010 15:27  @Naturalist#04.11.2010 15:19
+
-
edit
 

Balancer

администратор
★★★★★
Вот, видишь. По-первых, множество лишних закорючек. Во-вторых, прикинь цикл написания и отладки такого :)

Опять же, я выше про производительность и библиотеки уже упоминал...
 3.6.113.6.11
US Naturalist #04.11.2010 15:36  @Balancer#04.11.2010 15:27
+
-
edit
 

Naturalist

аксакал

Balancer> Вот, видишь. По-первых, множество лишних закорючек. Во-вторых, прикинь цикл написания и отладки такого :)

По моему, прекрасно. Практически бейсик. Плюс всем еще можно двигать и еще есть 3D.

Balancer> Опять же, я выше про производительность и библиотеки уже упоминал...
Что с производительностью браузера не так?

Я не уговариваю, мне интересно. ;)
 6.0.472.636.0.472.63
RU Balancer #04.11.2010 15:40  @Naturalist#04.11.2010 15:36
+
-
edit
 

Balancer

администратор
★★★★★
Naturalist> По моему, прекрасно. Практически бейсик.

JavaScript сравнивать с Бейсиком... Не, я столько не выпью :D

Naturalist> Плюс всем еще можно двигать и еще есть 3D.

В Питоне можно, вообще, задействовать стандартный pygame :)

Naturalist> Что с производительностью браузера не так?

Не браузера. А Яваскрипта в нём. Опять же, что там с вводом/выводом? Файлики читать/писать?

Naturalist> Я не уговариваю, мне интересно. ;)

Вот я и расписываю ;)
 3.6.113.6.11
US Naturalist #04.11.2010 16:07  @Balancer#04.11.2010 15:40
+
-
edit
 

Naturalist

аксакал

Naturalist>> Что с производительностью браузера не так?
Balancer> Не браузера. А Яваскрипта в нём. Опять же, что там с вводом/выводом? Файлики читать/писать?

Нет, пишите на чем хотите, я про HTML5 как про формат отчета, который можно просматривать, касиво печатать и посылать по емейлу. И при этом это не JPEG какой-нибудь. И текста в него можно положить сколько угодно.
Берешь phyton-json экспортишь через него графику в хтмл, а потом простенькой билбиотечкой на JS отображаешь.
Надеюсь ты понял мою мысль.

Naturalist>> Я не уговариваю, мне интересно. ;)
Balancer> Вот я и расписываю ;)

Это хорошо. :)
 6.0.472.636.0.472.63
RU Balancer #04.11.2010 16:13  @Naturalist#04.11.2010 16:07
+
-
edit
 

Balancer

администратор
★★★★★
Naturalist> Нет, пишите на чем хотите, я про HTML5 как про формат отчета

Тогда уж проще и универсальнее сразу SVG :)

Naturalist> Берешь phyton-json экспортишь через него графику в хтмл

Берёшь python-cairo (или хотя бы упомянутый ранее gnuplot) и экспортируешь хоть в .jpg/.png, хоть в .svg, хоть в .pdf :)
 3.6.113.6.11
US Naturalist #04.11.2010 16:19  @Balancer#04.11.2010 16:13
+
-
edit
 

Naturalist

аксакал

Balancer> хоть в .svg, хоть в .pdf :)

Браузер тебе это только через достаточно кривой плагин покажет, если захочется положить картинку на вебсайт. А JPG/PNG не масштабируется.
Я просто сейчас в процессе чтения и осмысления этого HTML5. Мне кажется правильное направление.
 6.0.472.636.0.472.63
RU Balancer #04.11.2010 16:42  @Naturalist#04.11.2010 16:19
+
-
edit
 

Balancer

администратор
★★★★★
Naturalist> Браузер тебе это только через достаточно кривой плагин покажет

Э... SVG сегодня все нормальные браузеры нативно показывают. В отличии от HTML5 ;)

Naturalist> Я просто сейчас в процессе чтения и осмысления этого HTML5. Мне кажется правильное направление.

Естественно. Но это направление, а не решение ;)
 3.6.113.6.11
US Сергей-4030 #04.11.2010 17:05  @Balancer#04.11.2010 15:27
+
+1
-
edit
 

Сергей-4030

исключающий третье
★★
админ. бан
Balancer> Опять же, я выше про производительность и библиотеки уже упоминал...

Это непоследовательно. Если на удобство средства разработки положить тяжелый и толстый, то кого волнует производительность?
 7.0.517.417.0.517.41
1 2 3 4 5

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru