Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2016, 16:39   #1
ctyz
Новичок
Джуниор
 
Регистрация: 28.10.2016
Сообщений: 5
По умолчанию Визуализация матрицы значений

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

Предположим есть такая матрица значений:
-19715 17495 -9090 -5335
-19545 14235 -1420 -630
-17725 18535 -2590 230
-13290 21705 1325 195

Мне нужно визуализировать эту матрицу, как это делается в matlab с помощью функции imagsc, которая интерпретирует матрицу как прямоугольное изображение и каждый элемент матрицы представляется в виде квадратика, цвет которого соответствует величене элемента.

На картинке пример того как это происходит в matlab.


Помогите пожалуйста понять, как получить такую же картинку по матрице в delphi.
ctyz вне форума Ответить с цитированием
Старый 28.10.2016, 16:50   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

StringGrid например. Но сама не заполнится, кодом нужно. И тем более раскраску кодом. Но можно и не сложно. А картинку не вижу
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 28.10.2016, 17:05   #3
ctyz
Новичок
Джуниор
 
Регистрация: 28.10.2016
Сообщений: 5
По умолчанию

Вот ссылка на картинку:
http://s8.hostingkartinok.com/upload...886e7422b0.jpg

А если значений больше 160000?
Если Вам не трудно, Вы не смогли бы дать ссылку на пример визуализации матрицы с помощью StringGrid?
ctyz вне форума Ответить с цитированием
Старый 28.10.2016, 17:15   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Картинку увидел сейчас. Но так как на картинке StringGrid навряд ли. И вообще не понял принцип такой визуализации. Типа чем больше значение, тем, например, ярче точка или цвет больше в красный уходит и для больших матриц? Если так, то на канвас PaintBox-а можно попробовать изобразить
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 28.10.2016 в 17:19.
Аватар вне форума Ответить с цитированием
Старый 28.10.2016, 17:29   #5
ctyz
Новичок
Джуниор
 
Регистрация: 28.10.2016
Сообщений: 5
По умолчанию

Да, примерно так, как Вы поняли. А можно поподробнее про канвас PaintBox, я просто не программист, а электронщик и в программировании плохо соображаю.
ctyz вне форума Ответить с цитированием
Старый 28.10.2016, 17:54   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А матрица есть? В виде Excel-таблицы например. В принципе и текстовый файл подойдет, лучше структурированный. Или xml. Если есть выложи, тогда можно и глянуть. А объяснять как с паинбокс работать не программисту не знаю как. Да там и не с ним основные сложности будут, а с обработкой и преобразования матрицы
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 28.10.2016, 18:09   #7
ctyz
Новичок
Джуниор
 
Регистрация: 28.10.2016
Сообщений: 5
По умолчанию

Amplitude.xls
Вот матрица в exel, но она вся не влезла, но и эта подойдёт я думаю.
Я бы для начала хотел просто узнать как любую матрицу любого размера визуализировать по такому принципу.
ctyz вне форума Ответить с цитированием
Старый 28.10.2016, 18:52   #8
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Не комплексуй - рисуй прям на форме:

12.jpg


Если не хочешь "пачкать" главную форму - используй дополнительную ("кликнул на кнопку - вывело дополнительную форму-картинку").

p.s.1: что бы на форме рисовать, нужно сначала создать "обработчик обрисовки окна":

13.jpg

p.s.2: здесь, как ты видишь, цвет задаётся в RGB. А как перевести твою таблицу в RGB?

p.s.3: Ты можешь попробовать на "разном" порисовать, а дальше выберешь лучшее (рисовать можно на чём угодно: StringGrid, (есть какае-то) Image, (есть какае-то) ImageList, (есть какае-то) TChar....).

Почему я к некоторым инструментам добавлял слова: "есть какае-то"? Дело в том, что я только начал изучать Делфи, и соответсвенно, много пока не знаю - я просто предполагаю.

Последний раз редактировалось ura_111; 28.10.2016 в 18:56.
ura_111 вне форума Ответить с цитированием
Старый 28.10.2016, 19:05   #9
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Забыл пример рисования в StringGrid показать:

http://www.programmersforum.ru/showt...=298695&page=2

там крупные ячейки (по 30 пикселей), но ты можешь установить размер и по 1-му пикселю.
ura_111 вне форума Ответить с цитированием
Старый 28.10.2016, 19:16   #10
ctyz
Новичок
Джуниор
 
Регистрация: 28.10.2016
Сообщений: 5
По умолчанию

Спасибо! А как теперь в Вашем примере задать определённый цвет каждому элементу матрицы?
Для примера скидываю ссылку на изображение с colorbar'ом
http://s8.hostingkartinok.com/upload...e35f208f97.png
ctyz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка в нахождении max и min значений в строке матрицы kasteton Помощь студентам 2 07.01.2014 13:50
сортировка строк матрицы по убыванию значений элементов столбца siner Паскаль, Turbo Pascal, PascalABC.NET 2 14.11.2012 08:25
диапозон значений элементов для каждой строки двумерной матрицы gagarin614 Visual C++ 1 09.11.2011 12:37
сумма максимальных значений элементов столбцов матрицы motaro Помощь студентам 2 26.11.2009 19:00
Определение собственных значений для матрицы 2-го порядка Игорь777 Помощь студентам 0 26.04.2009 18:33