Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Графика и игры
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.09.2008, 00:04
transtream transtream вне форума
Прохожий
 
Регистрация: 20.09.2008
Сообщения: 3
Репутация: 10
По умолчанию Координатная система

Вообщем нужно рисовать некий график в координатной системе типа точка 0 в центре, а оси x и y расходятся в стороны до бесконечности (как в отрицательную сторону, так и в положительную). Пытался мудрить c TImage, но ничего хорошего у меня не получилось. Если еще как то сместить точку 0 в центр TImage можно, то добиться бесконечности - увы..

Возможно есть какие-нить компоненты типа TImage, только с такой вот координатной системой, и если есть, то как называются, а то чую с TImage этот трюк не пройдет

спасибо!!
Ответить с цитированием
  #2  
Старый 21.09.2008, 00:24
Аватар для cotseec
cotseec cotseec вне форума
Активный
 
Регистрация: 16.07.2008
Сообщения: 353
Версия Delphi: D7,TDE06,RAD09
Репутация: 1443
По умолчанию

может OpenGL спасет?
там точка 0 в центре и по осям от -1 до 1

а если компонент, то TChart (вкладка Additional), он предназначен для вывда графиков
__________________
Понять, что хочет заказчик - бесценно, ведь он платит MasterCard

Последний раз редактировалось cotseec, 21.09.2008 в 12:43.
Ответить с цитированием
  #3  
Старый 22.09.2008, 10:56
san-46 san-46 вне форума
Активный
 
Регистрация: 25.04.2008
Сообщения: 383
Репутация: 33
По умолчанию

http://delphisources.ru/pages/source...r-graphic.html
Это компонент (не программа как на странице написано), который может помочь. Позволяет динамически (во время выполения) расширять максимальные значения осей.
Интересно и то, как поставлен вопрос. Как можно умудриться "добиться бесконечности" в компьютерной системе, которая по определению конечна.
__________________
Не забывайте делать резервные копии

Последний раз редактировалось san-46, 22.09.2008 в 11:02.
Ответить с цитированием
  #4  
Старый 23.09.2008, 17:16
transtream transtream вне форума
Прохожий
 
Регистрация: 20.09.2008
Сообщения: 3
Репутация: 10
По умолчанию

ну TChart и TGraphMois не очень подходят к моей проблеме, потому что нужно через Canvas отображать (я почему и написал "типа TImage"), дело все в значениях, которые я читаю из файла

а про бесконечность - я имею ввиду большие значения по осям, к тому же я не знаю какая координата будет самая большая, это уже зависит от значений из файла...
Ответить с цитированием
  #5  
Старый 23.09.2008, 17:39
Аватар для :S.p.a.m.
:S.p.a.m. :S.p.a.m. вне форума
Активный
 
Регистрация: 04.05.2008
Сообщения: 260
Репутация: 15
По умолчанию

А чем тебе TChart не нравится??? вполне неплохо отображает.
Пример работы с TChart
Может пригодится!
Ответить с цитированием
  #6  
Старый 23.09.2008, 19:47
san-46 san-46 вне форума
Активный
 
Регистрация: 25.04.2008
Сообщения: 383
Репутация: 33
По умолчанию

Цитата:
Сообщение от transtream
ну TChart и TGraphMois не очень подходят к моей проблеме, потому что нужно через Canvas отображать (я почему и написал "типа TImage"), дело все в значениях, которые я читаю из файла
Все что отображается в Windows, отображается через Canvas (только в API он называется DC). И причем здесь TImage, который вообще предназначен для готовых изображений и никак не подходит для "рисования"?
И TChart и TGraphMois все графики отображают через Canvas. Опять же непонятно, что человеку надо. И что это за таинственные значения из файла, которые нельзя отобразить в том же TChart?
Ну, допустим, TChart сложен для освоения, но в TGraphMois все понятно и прозрачно: читай себе значения из файла, запихивай их в массивы, и график на ладони.
__________________
Не забывайте делать резервные копии

Последний раз редактировалось san-46, 23.09.2008 в 19:55.
Ответить с цитированием
  #7  
Старый 25.09.2008, 15:53
transtream transtream вне форума
Прохожий
 
Регистрация: 20.09.2008
Сообщения: 3
Репутация: 10
По умолчанию

Рисовать нужно функциями Canvas. Кроме MoveTo и LineTo, мне нужно еще окружность отображать и пр. Мне нужна просто поверхность рисования с координатной системой с точкой 0 не в левом верхнем углу, а по середине...

И с каких пор TImage не годен для рисования? Если даже в самих примерах Delphi он используется для этой цели!

Последний раз редактировалось transtream, 25.09.2008 в 15:57.
Ответить с цитированием
  #8  
Старый 25.09.2008, 18:32
san-46 san-46 вне форума
Активный
 
Регистрация: 25.04.2008
Сообщения: 383
Репутация: 33
По умолчанию

Так рисуйте. Берите канву любого класса, который предоставляет этот самый Canvas (TPaintBox, TGraphicControl, TBitmap, наконец можно взять саму форму,
в которой тоже есть свойство Canvas).
А нужную для каждой конкретный задачи координатную систему все равно ни один компонент не предоставить.
"Поверхность рисования" - это и есть Canvas. А координатную систему самому надо делать, самому.
Возьмите исходники TGraphMois - в них есть все что нужно для вашей задачи. Достаточно только переделать под себя.

А TImage не предназначен для рисования с тех пор как этот компонент появился. Можно, конечно, и пластилином гвозди забивать, да только себе дороже.
В справке ясно и не двусмысленно написано:
"The image component (TImage) displays a graphical image, like a bitmap, icon, or metafile."
Т.е. для отображения графических изображений (готовых bitmap, icon,...). Для "рисования" предназначены совсем другие компоненты.
__________________
Не забывайте делать резервные копии
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 10:43.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter