OberonCore
https://forum.oberoncore.ru/

Модуль для графики
https://forum.oberoncore.ru/viewtopic.php?f=35&t=5961
Страница 1 из 1

Автор:  Sergey Volkov [ Суббота, 26 Ноябрь, 2016 17:31 ]
Заголовок сообщения:  Модуль для графики

Здравствуйте!

Я увидел, что в описаниях можно встретить модуль упрощенной графики Info21sysTPGraphics, но я его не нашёл в модулях ВВ.

Существует ли на данный момент времени (26.11.2016) простой модуль для создания графиков функций?

Спасибо

Автор:  Иван Денисов [ Суббота, 26 Ноябрь, 2016 17:39 ]
Заголовок сообщения:  Re: Модуль для графики

Попробуйте мою подсистему для графиков!
http://apps.blackboxframework.org/component/DiaPlot
Рад буду ответить на вопросы и выслушать предложения.

Автор:  Sergey Volkov [ Воскресенье, 27 Ноябрь, 2016 20:45 ]
Заголовок сообщения:  Re: Модуль для графики

Спасибо, Иван.
Смотрю ваши видео на youtube
https://www.youtube.com/watch?v=AAp9mVQ ... Elw5&t=11s

Автор:  Иван Денисов [ Понедельник, 28 Ноябрь, 2016 06:19 ]
Заголовок сообщения:  Re: Модуль для графики

qrkx писал(а):
Смотрю ваши видео на youtube

Если смотрите уроки, то в Красноярской сборке и в новой сборке Интрон, которая ее заменила, встроена эта подсистема DiaPlot.

Автор:  Sergey Volkov [ Суббота, 07 Январь, 2017 16:00 ]
Заголовок сообщения:  Re: Модуль для графики

Только сегодня добрался до 5-ой встречи.
Взял blackbox-red по ссылке в уроке.
Почти всё получилось, кроме некоторых моментов:

Не получилось запустить график без этой вот строчки:

1.
Код:
Views.Update(axes, Views.keepFrames);


2.
Код:
axes.xmax := pos;
axes.ymax := -1;
axes.ymax := 1;


Но это мелочи, потому что всё остальное просто фантастика!!!

Спасибо огромное!

Автор:  Sergey Volkov [ Воскресенье, 08 Январь, 2017 20:42 ]
Заголовок сообщения:  Re: Модуль для графики

Иван Денисов писал(а):
qrkx писал(а):
Смотрю ваши видео на youtube

Если смотрите уроки, то в Красноярской сборке и в новой сборке Интрон, которая ее заменила, встроена эта подсистема DiaPlot.


Сборка Интрон не понравилась, пока нравиться Red

В функции SetStyle не поравилось, что компилятор просит ввести все аргументы

Я не разобрался, как сохранять график в стандартный форматах изображения: jpg, png

Автор:  Sergey Volkov [ Воскресенье, 15 Январь, 2017 12:24 ]
Заголовок сообщения:  Re: Модуль для графики

Получилось с помощью модуля DiaPlot сделать график.
Где бы взять модуль, чтобы odc-график стал картинкой в формате png?

Код программы надо смотреть в другой ветке:
http://forum.oberoncore.ru/viewtopic.php?f=35&t=5991&start=40

Вложения:
fuzzysetgraf.png
fuzzysetgraf.png [ 20.61 КБ | Просмотров: 9443 ]

Автор:  Иван Денисов [ Воскресенье, 15 Январь, 2017 14:08 ]
Заголовок сообщения:  Re: Модуль для графики

Напрямую это возможно делать через библиотеку FreeImage, но это достаточно нетривиально.
В подсистеме Abf есть возможность импорта любых форматов, но в открытом доступе нет экспорта.
Илья, а Вы не делали случайно экспортеры в рамках проекта Abf?

Автор:  Иван Денисов [ Воскресенье, 15 Январь, 2017 14:11 ]
Заголовок сообщения:  Re: Модуль для графики

Для быстрого решения проблемы рекомендую сохранять в bmp и потом преобразовывать любым доступным конвертером изображений.

Вложения:
save_bmp.png
save_bmp.png [ 93.21 КБ | Просмотров: 9431 ]

Автор:  Sergey Volkov [ Воскресенье, 15 Январь, 2017 18:07 ]
Заголовок сообщения:  Re: Модуль для графики

Иван Денисов писал(а):
Для быстрого решения проблемы рекомендую сохранять в bmp и потом преобразовывать любым доступным конвертером изображений.


Что ж вы молчали :D

В сборке Intron нашёл, как сохранить график: Plot -> save raster image

Спасибо!!!

Вложения:
save2bmp.png
save2bmp.png [ 28.01 КБ | Просмотров: 9415 ]

Автор:  Info21 [ Воскресенье, 15 Январь, 2017 18:40 ]
Заголовок сообщения:  Re: Модуль для графики

File --> Save as bmp есть (и всегда было) во всех сборках от Информатики-21.

Автор:  Sergey Volkov [ Вторник, 17 Январь, 2017 21:09 ]
Заголовок сообщения:  Re: Модуль для графики

Спасибо за подсказки

Я сделал график нечёткого множества в диалогов окне, теперь пора сложить его в exe-файл
и порадовать мир этим творением :D

Хотя для нормальной работы с вводом придётся писать парсер

Есть в BB регулярные выражения?

Вложения:
FuzzySetDialog.png
FuzzySetDialog.png [ 28.07 КБ | Просмотров: 9271 ]

Автор:  Иван Денисов [ Вторник, 17 Январь, 2017 21:32 ]
Заголовок сообщения:  Re: Модуль для графики

Поддержка регулярных выражений в языке не предусмотрена.

Есть некая подсистема с поддержкой регулярных выражений, которая использует технологии на грани моего понимания... Какое-то наихитрейшее метарапрограммирование :-)
http://zinnamturm.eu/downloadsAC.htm#CpcRegul

Однако для Вашей задачи в качестве парсера отлично подойдет модуль TextMappers.
Вот накидал пример, который вам поможет сделать удобный ввод данных:

Код:
MODULE DemoMappers;
   IMPORT  Log, TextModels, TextMappers;
   
   VAR
      a: POINTER TO ARRAY OF REAL;
      input*: ARRAY 256 OF CHAR;
      
   PROCEDURE Do*;
      VAR s: TextMappers.Scanner; m: TextModels.Model; i: INTEGER;
   BEGIN
      m := TextModels.dir.NewFromString(input);
      s.ConnectTo(m);
      i := 0;
      REPEAT
         s.Scan();
         IF (s.type = TextMappers.real) OR (s.type = TextMappers.int) THEN
            INC(i)
         END;
      UNTIL s.type = TextMappers.eot;

      NEW(a, i);
      i := 0;
      s.SetPos(0);
      REPEAT
         s.Scan();
         IF s.type = TextMappers.real THEN
            a[i] := s.real;
            INC(i)
         ELSIF s.type = TextMappers.int THEN
            a[i] := s.int;
            INC(i)
         END;
      UNTIL s.type = TextMappers.eot;
      
      
      FOR i := 0 TO LEN(a) - 1 DO
         Log.Real(a[i]); Log.Ln
      END
   END Do;

BEGIN
   input := "6 7 8 9 9.356 5.6 4.4534"
   
   
END DemoMappers.

DemoMappers.Do


Сначала идет подсчет числа элементов, потом для них создается массив, и затем заново сканируется строка, заполняя массив. После заполнения, данные выводятся в журнал.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/