![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() ![]() |
![]() |
Провинциалка |
![]()
Сообщение
#1
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 57 Пол: Женский Реальное имя: Ольга Репутация: ![]() ![]() ![]() |
Здравствуйте!
Осваиваю новую тему в Delphi - графика. Дали задание - построить графики на Canvas в Image. На основе примеров, данных на лекции, попыталась сделать это сама, но не получается. Даже парабола, код которой дали не выводится. Подскажите ошибку в построении параболы. Вод её код: unit Unit1; Эскизы прикрепленных изображений ![]() |
IUnknown |
![]()
Сообщение
#2
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата Даже парабола, код которой дали не выводится. Я тебе больше скажу, она не только не выводится, но программа даже не компилируется. И еще больше: и правильно делает. Потому что1) для того, чтобы делать так, как ты делаешь - надо чтобы x, y были типа Integer, а не real, иначе будет несоответствие типов; 2) чтобы программа не только компилировалась, но и работала, неплохо бы инициализировать ВСЕ переменные. У тебя X, Y и Step - не инициализированы, а поскольку они локальные, то содержат мусор. Результатам доверять нельзя. Если сделать X := Image1.Width div 2, и, соответственно, Y установить в половину высоты, и задать какое0то значение переменной Step, то парабола прекрасно отрисуется... |
Провинциалка |
![]()
Сообщение
#3
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 57 Пол: Женский Реальное имя: Ольга Репутация: ![]() ![]() ![]() |
Да, действительно, всё здорово получилось при такой коррекции:
procedure TForm1.Button1Click(Sender: TObject); Даже душа поет! СПАСИБО! Может подскажете, как обрезать "усы" у параболы ? (С линиями y=4, надеюсь, сама разберусь и покажу как сделала) |
IUnknown |
![]()
Сообщение
#4
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Что значит "Обрезать усы"? В каком интервале X просила нарисовать параболу - в таком она и нарисована, изменяй начальное/конечное значение X - получишь более "короткие усы"
![]() |
Провинциалка |
![]()
Сообщение
#5
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 57 Пол: Женский Реальное имя: Ольга Репутация: ![]() ![]() ![]() |
Извините, я не смогла понять вот это
Цитата изменяй начальное/конечное значение X |
IUnknown |
![]()
Сообщение
#6
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
x2 := -1.5;Какой длины "усы" теперь? |
Провинциалка |
![]()
Сообщение
#7
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 57 Пол: Женский Реальное имя: Ольга Репутация: ![]() ![]() ![]() |
Поняла теперь. Спасибо!
Теперь постараюсь правильно выполнить остальную часть задания. |
Провинциалка |
![]()
Сообщение
#8
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 57 Пол: Женский Реальное имя: Ольга Репутация: ![]() ![]() ![]() |
Попыталась поставить оси координат, но получается несостыковка начала осей и нижней части параболы. Как так?
x2:=x2 + 0.001; |
IUnknown |
![]()
Сообщение
#9
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата Как так? Когда ты говоришь компилятору Height, он должен сам догадаться, что надо взять не Form1.Height, а Image1.Height? Этого Дельфи делать не умеет ![]() |
Провинциалка |
![]()
Сообщение
#10
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 57 Пол: Женский Реальное имя: Ольга Репутация: ![]() ![]() ![]() |
Вау!!! Получилось!!! Спасибо!
Вы знаете, я даже сама успела сообразить (посмотрев свой конспект), что надо добавлять form1.Image1. Пойду попью чаю и продолжу свою работу! |
IUnknown |
![]()
Сообщение
#11
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Кстати, Form1 добавлять не обязательно, кнопка, нажатие на которую ты обрабатываешь, лежит на этой же форме, так что все обращения будут по умолчанию к контролам, лежащим на Form1.
|
Провинциалка |
![]()
Сообщение
#12
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 57 Пол: Женский Реальное имя: Ольга Репутация: ![]() ![]() ![]() |
Это интересно. Любопытно то, что преподаватель-то писал на доске именно так: form1.Image1. Ну да ладно.
Сейчас вот пытаюсь придумать, как прочертить оставшиеся две линии: у=4. Самое страшное это то, что у меня нет никаких вариантов по этому поводу. ![]() Сообщение отредактировано: Провинциалка - 19.02.2012 20:53 |
sheka |
![]()
Сообщение
#13
|
![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: ![]() ![]() ![]() |
Аналогично. Абсцисса изменяется как и в предыдущем случае, а ордината в Твоем случае будет у - 4.
Еще лучше это сделать с помощью линии, задав начало и конец. Сообщение отредактировано: sheka - 20.02.2012 0:31 |
Провинциалка |
![]()
Сообщение
#14
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 57 Пол: Женский Реальное имя: Ольга Репутация: ![]() ![]() ![]() |
Цитата Еще лучше это сделать с помощью линии, задав начало и конец. Я вообщем-то тоже так рассуждала, просто затрудняюсь в том, как задать начало |
sheka |
![]()
Сообщение
#15
|
![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: ![]() ![]() ![]() |
Раз пишешь в делфях, то используешь LineTo.
Далее пытаемся подумать, где же кроется ответ? Конечно же гугл! Что же в него забить в запрос? Да то, что знаем: "delphi lineto". Первая ссылка дает нужный результат: http://www.codenet.ru/progr/delphi/stat/gdi.php Тут уже, чтобы долго не искала подсказка: нажми Ctrl+f , введи Рисование линий и нажми enter. Нужный раздел открыт ![]() Цитата MoveTo Перемещает точку начала рисования линии в указанные координаты x и y Canvas.MoveTo(50, 100); |
Провинциалка |
![]()
Сообщение
#16
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 57 Пол: Женский Реальное имя: Ольга Репутация: ![]() ![]() ![]() |
Спасибо всем за помощь. Задание выполнено!
|
![]() ![]() |
![]() |
Текстовая версия | 19.02.2025 1:13 |