Страница 1 из 1

TCanvas.DrawPixel

СообщениеДобавлено: 30.03.2022 14:41:39
IStukalov
Добрый день.

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

Сейчас начал изучение по работе с графиков. Требуется для написания небольшой программы, которая облегчит жизнь в части подготовки планирования расположения разных предметов в замкнутом пространстве.

Re: TCanvas.DrawPixel

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

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

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

то FPImage можно наверное не подключать, если это важно.

Re: TCanvas.DrawPixel

СообщениеДобавлено: 30.03.2022 16:32:27
IStukalov
iskander
Спасибо! Попробую. Если не сложится вернусь :)

PS На дельфи7 столько было справочной информации и в одном месте, а тут конечно много и в интернете не получается найти хорошего.

Re: TCanvas.DrawPixel

СообщениеДобавлено: 31.03.2022 06:44:09
Снег Север
Ьеня удивляет зачем люди тратят массу времени на изучение заведомо устаревшей фигни, вроде рисования на Canvas. Людям, которые хотят делать какие-либо графические приложения на паскале, я бы настоятельно рекомендовал начать с GLScene - http://glscene.sourceforge.net/wikka/ - есть пакет под лазарус, масса примеров, в основном - кроссплатформенная.

Re: TCanvas.DrawPixel

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

Потому лучше скидывать ссылки на список библиотек, из которых можно выбрать.
https://wiki.freepascal.org/Games - здесь можно увидеть их именно для FPC/Lazarus.

Re: TCanvas.DrawPixel

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

Seenkao
А какие есть библиотеки, которые позволят рисовать любые геометрические фигуры и в принципе она будет работать одинаково как на Win так и на Linux? И в принципе не планирую изучать графику для создания игр или анимации. Изучаю графику, чтобы можно было создавать/моделировать объекты (грубо говоря прототипы мебели, окон, дверей и прочее).

Re: TCanvas.DrawPixel

СообщениеДобавлено: 31.03.2022 21:28:07
Снег Север
IStukalov, я еще лет десять назад делал образовательную программу для школьников - геометрия и стереометрия, с реализацией графики на GLScene. Да, на делфи, но сейчас там в основном допилили и лазарь. Для неигровой графики - более чем достаточно. OpenGL - графическая основа, гарантировано работает одинаково под Win и Linux. То, что может вызвать проблему, всякие расширения, аппаратно реализованные шейдеры, вам не надо.

Re: TCanvas.DrawPixel

СообщениеДобавлено: 31.03.2022 21:50:33
IStukalov
Снег Север
А можно почитать ваши труды? Буду признателен вам за это.

Re: TCanvas.DrawPixel

СообщениеДобавлено: 31.03.2022 22:29:46
Seenkao
Снег Север писал(а):гарантировано

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

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

Может вот это подойдёт? BGRABitmap

Re: TCanvas.DrawPixel

СообщениеДобавлено: 01.04.2022 05:59:24
Снег Север
IStukalov писал(а):А можно почитать ваши труды? Буду признателен вам за это.

Увы, нет. Правообладателем кода является фирма. в которой я тогда работал. Впрочем, там не было ничего очень оригинального, в основном - адаптированные стандартные примеры GLScene.

Re: TCanvas.DrawPixel

СообщениеДобавлено: 01.04.2022 09:56:35
IStukalov
Снег Север
Ясно.

Seenkao
Попробую.

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

Добавлено спустя 4 часа 13 минут 49 секунд:
Нашел похожую тему, там продолжу общение. Если конечно дадут ответы :) Тут уже в сторону уход.