|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.04.2010, 00:04 | #1 |
Регистрация: 01.04.2010
Сообщений: 9
|
как рисовать график ф-ии с на компоненте TImage?
Здравствуйте, научите пожалуйста как рисовать на image, я делаю
так function Tform1.F(x:real; var Xmax,Xmin,Ymax,Ymin:real):real; begin F:=Sin(x); Xmax:=4*pi; Xmin:=0; Ymax:=1; Ymin:=-1; end; procedure TForm1.Button1Click(Sender: TObject); var x,y:real; PX,PY:longInt; begin for PX:=0 to Image1.Width do begin x:=Xmin+PX*(Xmax-Xmin)/Image1.Width; y:=F(x,Xmax,Xmin,Ymax,Ymin); PY:=trunc(Image1.Height-(y-Ymin)*Image1.height/(Ymax-Ymin)); image1.Canvas.Pixels[PX,PY]:=clBlack; end; end; при запуске выскакивает ошибка can only modify an image if it containsin bitmap. Что нужно сделать чтобы исправить ошибку? |
02.04.2010, 00:33 | #2 |
Пользователь
Регистрация: 24.03.2010
Сообщений: 38
|
если переменные Xmin,Xmax,Ymax,Ymin описаны, то ошибки никакой нет. Всё работает
Если чем помог, оставьте отзыв...
|
02.04.2010, 00:46 | #3 |
Экспериментатор
Форумчанин
Регистрация: 16.04.2008
Сообщений: 218
|
Эта ошибка возникает, если image contains a bitmap - если в image загружен рисунок. Это так? Нужно рисовать поверх рисунка? Есть способ, но это сложнее. Лучше рисовать в пустом image.
И еще на счет функции F(...). Пожалуйста не надо такого писать! Это ужасно! Переделайте. Если что непонятно - спрашивайте, объясню.
Для создания сложных вещей не нужны сложные интерфейсы. (с) Линус Торвальдс
|
02.04.2010, 08:32 | #4 |
Регистрация: 01.04.2010
Сообщений: 9
|
Олвин, да, именно мне нужно рисовать на поверхности рисунка, в этом весь смысл. А как это сделать не знаю. Если сможете, то объясните как это сделать, буду очень благодарен.
|
02.04.2010, 10:26 | #5 |
Экспериментатор
Форумчанин
Регистрация: 16.04.2008
Сообщений: 218
|
Хотя вообще-то это не многим сложнее. Нужно сначала загрузить картинку в другой image (можно его сделать невидимым - он будет хранилищем рисунка, назовем его ImgPic) а затем выполняем следующее:
Код:
Для создания сложных вещей не нужны сложные интерфейсы. (с) Линус Торвальдс
Последний раз редактировалось Олвин; 02.04.2010 в 10:30. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Таблицы - как рисовать | nazavrik | Общие вопросы C/C++ | 13 | 23.11.2009 23:12 |
как рисовать график в режиме реального времени? помогите пожалуйста | Master_S7 | Общие вопросы Delphi | 2 | 05.06.2009 22:04 |
Рисовать поверх TImage | odi_noki | Мультимедиа в Delphi | 10 | 09.04.2009 23:10 |
Бесконечный график на TImage, требуется помощь в оптимизации! | Ja` | Мультимедиа в Delphi | 9 | 14.02.2009 07:44 |