SICP, picture language и подходящая реализация Scheme
От: Аноним  
Дата: 20.04.08 02:01
Оценка:
Изучаю SICP. Вот дошел до этого самого языка описания картинок. До этого пользовался Mit GNU Scheme, в котором, кроме всего прочего, имеется и несложное API для работы с графикой. Однако в GNU/Linux (если точнее, Debian Testing) возникают определенные проблемы с ее использованием: нарисованное в окне изображение исчезает, если данное окно перекрыть другим. Соответственно пришлось искать другую реализацию Scheme. Нашелся Mzscheme. Однако не понравилось, что для использования графических библиотек необходимо доустанавливать их IDE DrScheme. Но это полбеды. Другая неприятность заключается в том, что непосредственно из Mzscheme (который легко встраивается в Emacs) с графикой работать нельзя. Для этого нужно использовать их жe MrEd (graphical scheme implementation, по словам авторов; в Emacs не встроить, по крайней мере, очевидным для меня способом) или непосредственно DrScheme. Меня это не очень устраивает, потому как я привык к Emacs и отказываться от него не собираюсь, так как мне он кажется в должной степени удобным.
В связи с этим, собственно, и вопрос. Для каких еще реализаций Scheme есть библиотеки для работы хотя бы с самой просто графикой? Хотелось бы, чтобы (будь то интерпретатор или компилятор) хорошо соответствовал стандарту языка (имеется в виду конечно не свежепринятый R6RS, а R5RS).
Как еще один вариант, рассматриваю использование SLIB, в которой есть кое-какие средства для работы с EPS, в том числе и для рисования графиков в них. Это можно как-то приспособить к моим нуждам.
Буду очень благодарен, если кто-либо подскажет еще какое-нибудь решение.
Re: SICP, picture language и подходящая реализация Scheme
От: VladD2 Российская Империя www.nemerle.org
Дата: 20.04.08 13:12
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Изучаю SICP. Вот дошел до этого самого языка описания картинок. До этого пользовался Mit GNU Scheme, в котором, кроме всего прочего, имеется и несложное API для работы с графикой. Однако в GNU/Linux (если точнее, Debian Testing) возникают определенные проблемы с ее использованием: нарисованное в окне изображение исчезает, если данное окно перекрыть другим. Соответственно пришлось искать другую реализацию Scheme. Нашелся Mzscheme.


Скорее всего рисовать нужно на событие отрисовки. Тогда изображение не пропадет. Если скорость отрисовки низкая, то нужно рисовать в битмап, а уж его выводить на событие отрисовки.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: SICP, picture language и подходящая реализация Scheme
От: Аноним  
Дата: 20.04.08 23:58
Оценка:
К сожалению, предложенное вами решение не подходит. Все дело в том, что никакой событийной модели у графической библиотеки из MIT GNU Scheme просто напросто нету. В ней только определены функции для создания (закрытия) графического устройства (поддерживаются Win32, X и OS/2), примитивы рисования и некоторые функции для управления платформозависимыми параметрами графических устройств. К сожалению среди последних не нашлось ничего, что могло бы (по крайней мере я не нашел) поправить ситуацию.
Кроме всего прочего, в Windows нету никаких проблем с перерисовкой.
Re[3]: SICP, picture language и подходящая реализация Scheme
От: Quintanar Россия  
Дата: 21.04.08 08:11
Оценка:
Здравствуйте, Аноним, Вы писали:

А>К сожалению, предложенное вами решение не подходит. Все дело в том, что никакой событийной модели у графической библиотеки из MIT GNU Scheme просто напросто нету. В ней только определены функции для создания (закрытия) графического устройства (поддерживаются Win32, X и OS/2), примитивы рисования и некоторые функции для управления платформозависимыми параметрами графических устройств. К сожалению среди последних не нашлось ничего, что могло бы (по крайней мере я не нашел) поправить ситуацию.

А>Кроме всего прочего, в Windows нету никаких проблем с перерисовкой.

Думаю, нужно искать байнды к сторонним библиотекам — wxWindows там или tcl/tk.
Re: SICP, picture language и подходящая реализация Scheme
От: z00n  
Дата: 21.04.08 10:51
Оценка:
Как человек, который через все это проходил — советую PLT Scheme + "sicp.plt 1.1 soegaard The SICP Picture Language." — которую брать здесь: http://planet.plt-scheme.org/display.ss?package=sicp.plt&owner=soegaard.

Если не ищете легких путей, то в PLT встроены биндинги к OpеnGL — в дистрибутиве есть несколько простых игр — можно посмотреть как пользоваться.
На planet же лежит биндинг PLT к Allegro Game library (не знаю насколько рабочий).

Если PLT противен — слкдующий кандидат Chicken: http://www.call-with-current-continuation.org/ — к нему есть много модулей расширений (http://www.call-with-current-continuation.org/eggs) — там можно поискать что-то вроде биндинга к SDL. Chicken поддерживает SWIG — можно быстро связать его с любой другой граф. библиотекой.

Ну и к банальному guile есть несколько биндингов к SDL (хотя guile не совсем совместим с R5RS).
Re: SICP, picture language и подходящая реализация Scheme
От: heavyweapondude  
Дата: 05.07.08 20:54
Оценка:
Здравствуйте, Аноним, Вы писали:

Извините, что отвечаю на cтарый топик, но недавно сам столкнулся с такой проблеммой. Я, в конечном счете, решил пока использовать DrScheme (лень возиться с нижеследующим), но в инете нашел на форумах инфу как прикручивать к emacs mred. Собственно можно погуглить по emacs mred eventspace или просто по emacs mred. Насколько я понял, quack даже знает про "mred -z" (запускает графический аналог REPL, плюс загружает нек. доп. библиотеки). Кроме того может потребоваться импорт доп. библиотек из поставки PLT и строчка evaluate (current-eventspace (make-eventspace)) в REPL. Все это вроде должно работать в PLT 4.

С уважением
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.