TCanvas.DrawPixel

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

TCanvas.DrawPixel

Сообщение IStukalov » 30.03.2022 14:41:39

Добрый день.

Подскажите пожалуйста, есть метод DrawPixel у класса TCanvas. В методе есть параметр: const newcolor: TFPColor. Собственно я его посмотрел и получается, что она передавать именно структуру? Я правильно понимаю? Плюс данная структура определена в FPImage. Поэтому данный файл нужно подключить в своем модуле, где я делаю вызов этого метода? Или можно как-то по другому задать цвет?

Сейчас начал изучение по работе с графиков. Требуется для написания небольшой программы, которая облегчит жизнь в части подготовки планирования расположения разных предметов в замкнутом пространстве.
IStukalov
новенький
 
Сообщения: 25
Зарегистрирован: 16.03.2022 14:35:43

Re: TCanvas.DrawPixel

Сообщение iskander » 30.03.2022 16:28:45

IStukalov писал(а):Собственно я его посмотрел и получается, что она передавать именно структуру? Я правильно понимаю?

Да.
IStukalov писал(а):Плюс данная структура определена в FPImage. Поэтому данный файл нужно подключить в своем модуле, где я делаю вызов этого метода? Или можно как-то по другому задать цвет?

В модуле Graphics есть, например, функция TColorToFPColor(), так что если ограничиться чем-то вроде
Код: Выделить всё
...
  Canvas.DrawPixel(10, 10, TColorToFPColor($808080));
...
  Canvas.DrawPixel(20, 20, TColorToFPColor(clGreen));
...

то FPImage можно наверное не подключать, если это важно.
iskander
постоялец
 
Сообщения: 465
Зарегистрирован: 08.01.2012 18:43:34

Re: TCanvas.DrawPixel

Сообщение IStukalov » 30.03.2022 16:32:27

iskander
Спасибо! Попробую. Если не сложится вернусь :)

PS На дельфи7 столько было справочной информации и в одном месте, а тут конечно много и в интернете не получается найти хорошего.
IStukalov
новенький
 
Сообщения: 25
Зарегистрирован: 16.03.2022 14:35:43

Re: TCanvas.DrawPixel

Сообщение Снег Север » 31.03.2022 06:44:09

Ьеня удивляет зачем люди тратят массу времени на изучение заведомо устаревшей фигни, вроде рисования на Canvas. Людям, которые хотят делать какие-либо графические приложения на паскале, я бы настоятельно рекомендовал начать с GLScene - http://glscene.sourceforge.net/wikka/ - есть пакет под лазарус, масса примеров, в основном - кроссплатформенная.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2849
Зарегистрирован: 27.11.2007 16:14:47

Re: TCanvas.DrawPixel

Сообщение Seenkao » 31.03.2022 09:32:20

Снег Север, для новичка это проще. Если каждый будет себя вспоминать, то будет вспоминать, какой "страх" испытывал что надо изучать какие-то библиотеки, в которых всё сложно.
Это потом приходит понимание этих библиотек и ими начинаешь пользоваться без труда. Но изучать-то всё равно приходится.
А GLScene не лучший вариант, он не работает нормально на Linux его допиливать надо. Что говорить, он даже под Windows не везде корректно работает для FPC/Lazarus. Эта библиотека больше настроена под Delphi.

Потому лучше скидывать ссылки на список библиотек, из которых можно выбрать.
https://wiki.freepascal.org/Games - здесь можно увидеть их именно для FPC/Lazarus.
Seenkao
постоялец
 
Сообщения: 398
Зарегистрирован: 01.04.2020 03:37:12

Re: TCanvas.DrawPixel

Сообщение IStukalov » 31.03.2022 19:24:49

Снег Север
Я во общем то не собираюсь заниматься анимацией/играми :) Мне нужны простые примитивы пока что, с помощью которых я буду рисовать разные геометрические фигуры (прямоугольник, квадрат, треугольник, дуга, эллипс/овал, круг) в области координат XY и XYZ.
Почему я решил использовать стандартные вещи? Потому что мне их будет достаточно для изучения пока что. Но уже правда столкнулся с проблемой, которая как я понимаю часто у многих возникает (мерцание при передвижении фигуры вверх или влево, пока читаю интернет как это обойти).

Seenkao
А какие есть библиотеки, которые позволят рисовать любые геометрические фигуры и в принципе она будет работать одинаково как на Win так и на Linux? И в принципе не планирую изучать графику для создания игр или анимации. Изучаю графику, чтобы можно было создавать/моделировать объекты (грубо говоря прототипы мебели, окон, дверей и прочее).
Последний раз редактировалось IStukalov 31.03.2022 21:49:57, всего редактировалось 1 раз.
IStukalov
новенький
 
Сообщения: 25
Зарегистрирован: 16.03.2022 14:35:43

Re: TCanvas.DrawPixel

Сообщение Снег Север » 31.03.2022 21:28:07

IStukalov, я еще лет десять назад делал образовательную программу для школьников - геометрия и стереометрия, с реализацией графики на GLScene. Да, на делфи, но сейчас там в основном допилили и лазарь. Для неигровой графики - более чем достаточно. OpenGL - графическая основа, гарантировано работает одинаково под Win и Linux. То, что может вызвать проблему, всякие расширения, аппаратно реализованные шейдеры, вам не надо.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2849
Зарегистрирован: 27.11.2007 16:14:47

Re: TCanvas.DrawPixel

Сообщение IStukalov » 31.03.2022 21:50:33

Снег Север
А можно почитать ваши труды? Буду признателен вам за это.
IStukalov
новенький
 
Сообщения: 25
Зарегистрирован: 16.03.2022 14:35:43

Re: TCanvas.DrawPixel

Сообщение Seenkao » 31.03.2022 22:29:46

Снег Север писал(а):гарантировано

Я бы хотел узнать, когда ты в последний раз запускал GLScene на Linux? Когда в последний раз устанавливал его в Lazarus на Linux?

IStukalov писал(а):А какие есть библиотеки, которые позволят рисовать любые геометрические фигуры и в принципе она будет работать одинаково как на Win так и на Linux?

Может вот это подойдёт? BGRABitmap
Seenkao
постоялец
 
Сообщения: 398
Зарегистрирован: 01.04.2020 03:37:12

Re: TCanvas.DrawPixel

Сообщение Снег Север » 01.04.2022 05:59:24

IStukalov писал(а):А можно почитать ваши труды? Буду признателен вам за это.

Увы, нет. Правообладателем кода является фирма. в которой я тогда работал. Впрочем, там не было ничего очень оригинального, в основном - адаптированные стандартные примеры GLScene.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2849
Зарегистрирован: 27.11.2007 16:14:47

Re: TCanvas.DrawPixel

Сообщение IStukalov » 01.04.2022 09:56:35

Снег Север
Ясно.

Seenkao
Попробую.

По факту повторюсь, нужна не анимация и геймдизайн, а по сути геометрия в 2D и 3D для моделирования объектов.

Добавлено спустя 4 часа 13 минут 49 секунд:
Нашел похожую тему, там продолжу общение. Если конечно дадут ответы :) Тут уже в сторону уход.
IStukalov
новенький
 
Сообщения: 25
Зарегистрирован: 16.03.2022 14:35:43


Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

Рейтинг@Mail.ru