Оберон-клуб «ВЄДАsoft» https://zx.oberon.org/forum/ |
|
Графические возможности Oberon 2 https://zx.oberon.org/forum/viewtopic.php?f=79&t=314 |
Страница 1 из 2 |
Автор: | Len [ 21 май 2017, 12:07 ] |
Заголовок сообщения: | Графические возможности Oberon 2 |
Какие модули надо подключать и как с ними работать, чтобы нарисовать линию, точку, окружность? Как определить разрешение экрана? |
Автор: | Zorko [ 21 май 2017, 19:23 ] |
Заголовок сообщения: | Re: Графические возможности Oberon 2 |
Вопросы вывода элементарной графики, давно решённые в других средствах разработки, при работе на Обероне могут вызвать дополнительные трудности. Всё-таки Оберон — средство не "из коробки", а, скорее, конструктор. Со всеми вытекающими достоинствами и недостатками. Прежде всего нужно уточнить, какую ОС и какую реализацию Оберона мы будем использовать. В зависимости от этого и будет ответ, потому что средства разных реализаций отличаются. Как мы знаем, многие реализации Оберона вообще самопальные и делаются энтузиастами. В них базовая работа с графикой может быть вообще не предусмотрена. И приходится либо привязываться к WinAPI, либо ещё что-то в таком духе. Вот что я сходу нашёл для некоторых реализаций:
• Строим интерактивный график косинуса средствами модуля Draw
• FreeImage — Loading, displaying and saving popular graphic image formats. • DiaPlot — allows to plot 2D graphs with unlimeted number of curves, to make animated graphs, to export graphs to "csv" and "mpl" formats. • Info21 — One module of Info21 provides an approximation to the Turbo Pascal graphics library. • Ogl — An interface to OpenGL. • Opal — Oberon Portable Applications Library. • Sdl — Simple DirectMedia Layer bindings for Oberon. • Xy — contains games based on XyColorPlane grafik. We offer something unique: a compromise between the mono-tasking of the original XYplane and the perfect cooperative multitasking of Blackbox. The following games are included: "IFS (Fractale)", "Life", "Lights on", "Minesweeper", "Reversi (Othello)", "Tic Tac Toe", "Vier Gewinnt (Connect Four)", "Pac Man", "Snake", "Tetris" and "Tron".
Буду рад, если коллеги дополнят. |
Автор: | Len [ 23 май 2017, 18:11 ] |
Заголовок сообщения: | Re: Графические возможности Oberon 2 |
Я что-то слышал о стандартном модуле System, который должен входить во все реализации Оберона. Что это за модуль такой, каковы его функции? |
Автор: | Saferoll [ 23 май 2017, 20:57 ] |
Заголовок сообщения: | Re: Графические возможности Oberon 2 |
Len писал(а): Я что-то слышал о стандартном модуле System, который должен входить во все реализации Оберона. Что это за модуль такой, каковы его функции? Из Х.Мёссенбёк, Н.Вирт (пер.С.Свердлова )Язык программирования Оберон-2 (Приложение С): Цитата: Модуль SYSTEM содержит некоторые типы и процедуры, которые необходимы для реализации операций низкого уровня, специфичных для данного компьютера и/или реализации. Они включают, например, средства для доступа к устройствам, которые управляются компьютером, и средства, позволяющие обойти правила совместимости типов, наложенные определением языка. Настоятельно рекомендуется ограничить использование этих средств специфическими модулями (модулями низкого уровня). Такие модули непременно являются непереносимыми, но легко распознаются по идентификатору SYSTEM, появляющемуся в их списке импорта. Нужно стараться не использовать SYSTEM и его процедуры - это средства "для трюков", когда обычными инструментами не обойтись. А уж если без него нельзя, то лучше создать модуль с набором своих специфических процедур (использующих SYSTEM для доступа на низком уровне), а потом в своей программе использовать не SYSTEM, а этот новый модуль.
|
Автор: | Zorko [ 24 май 2017, 20:38 ] |
Заголовок сообщения: | Re: Графические возможности Oberon 2 |
Len писал(а): Я что-то слышал о стандартном модуле System, который должен входить во все реализации Оберона. Что это за модуль такой, каковы его функции? Псевдомодуль SYSTEM не стандартизирован и, строго говоря, даже не является частью языка Оберон. И его реализация может зависеть от транслятора и платформы. Обычно в него входят низкоуровневые операции (например, логический битовый сдвиг), функции для низкоуровневого (опасного!) доступа к памяти, иногда к регистрам. Вот какие операции реализованы, например, в Ofront:Код: "OBERON"
• The Module SYSTEM in ETH Oberon |
Автор: | Len [ 25 май 2017, 13:31 ] |
Заголовок сообщения: | Re: Графические возможности Oberon 2 |
Oberon 07 compiler не поддерживает функцию LEN(a, b) для многомерных массивов ![]() |
Автор: | Zorko [ 25 май 2017, 19:48 ] | ||
Заголовок сообщения: | Re: Графические возможности Oberon 2 | ||
Гм, и действительно.
|
Автор: | Zorko [ 25 май 2017, 19:58 ] |
Заголовок сообщения: | Re: Графические возможности Oberon 2 |
Отчёт о языке описывает только один аргумент для LEN(), при том, что многомерные массивы Оберон-07 поддерживает. Получается, что вычислить длину многомерного открытого массива некак. Да здравствует простота! ![]() Len, я вот не любитель Оберона-07. Могу только посоветовать не использовать этот диалект. |
Автор: | Zorko [ 25 май 2017, 21:29 ] |
Заголовок сообщения: | Re: Графические возможности Oberon 2 |
Артур Ефимов писал(а): Но можно же сделать так: LEN(m[0])
потому что ARRAY 4, 6 OF INTEGER - это всего лишь сокращение от ARRAY 4 OF ARRAY 6 OF INTEGER поэтому m[0] в таком случае - это ARRAY 6 OF INTEGER, поэтому его вполне можно использовать в качестве параметра в LEN |
Автор: | vlad [ 26 май 2017, 15:41 ] |
Заголовок сообщения: | Re: Графические возможности Oberon 2 |
Zorko писал(а): Отчёт о языке описывает только один аргумент для LEN(), при том, что многомерные массивы Оберон-07 поддерживает. Получается, что вычислить длину многомерного открытого массива некак. Да здравствует простота! ![]() В O7 нет динамических массивов, поэтому длина многомерного открытого массива всегда может быть вычислена как LEN(open_array) * константую длину элемента. Zorko писал(а): Len, я вот не любитель Оберона-07. Могу только посоветовать не использовать этот диалект. А если использовать, то в виде oberonJS ![]() |
Страница 1 из 2 | Часовой пояс: UTC + 2 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |