Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2005.12.18;
Скачать: [xml.tar.bz2];

Вниз

Работа с Canvas.   Найти похожие ветки 

 
Катерина   (2005-11-29 18:27) [0]

Помогите с графиком разобраться пожалуйста!надо построить график синусоиды.в общем все строится,осталась одна проблема:как правильно ограничить PX, т е координату по оси X,чтобы строился только один период синусоиды и как расположить правильно ось OY.Т.е.надо чтоб сам график проходил через точку (0,0)вот программка для наглядности:

procedure TForm1.BtnPaintClick(Sender: TObject);
var
X, Y, A, w: real;      //   координаты  функции,амплитуды,частоты
PX, PY: longint; //   координаты  пикселей}
begin
try
A := StrToFloat (Edit1.Text);
  if (StrToFloat(Edit1.Text)>1) then
  begin
    showmessage ("Амплитуда должна быть не больше единицы!");
    exit;
  end;
w := StrToFloat (Edit2.Text);
except showmessage("Проверьте ввод!Следует ввести числовые значения!");
end;

with Canvas do begin
 MoveTo (190, ClientHeight div 2);
 LineTo (ClientWidth-90, ClientHeight div 2);
 MoveTo (ClientWidth div 2  , 0);
 LineTo (ClientWidth div 2  , ClientHeight);
end;

 for PX:=200 to (ClientWidth-100) do
 begin
  X := PX*4*Pi*w/(ClientWidth-100);
  Y := A*Sin(X);
  PY := trunc(ClientHeight - (Y+1)*ClientHeight/2);
  Canvas.LineTo (PX,PY);

 end;

end;


 
Юрий Зотов ©   (2005-11-30 07:02) [1]

Есть интервал значений по оси Y: от -1 до +1, причем -1 соответствует ClientHeigh, +1 соответствует нулю, а ось X проходит посередине высоты формы.

Есть интервал значений по оси X: от -Pi до +Pi, причем -Pi соответствует нулю, +Pi соответствует ClientWidth, а ось Y проходит посередине ширины формы.

Все остальное - элементарные пропорции из начальной школы плюс смещение на середину формы. Неужели это так сложно?

PX = Trunc((ClientWidth div 2) * (1 + X / Pi));
PY = Trunc((ClientHeight div 2) * (1 - Sin(X)));


 
Катерина   (2005-11-30 08:58) [2]

Да это так сложно!


 
Юрий Зотов ©   (2005-11-30 09:03) [3]

> Катерина   (30.11.05 08:58) [2]

Килограмм масла стоит 150 руб. Сколько стоит 200-граммовая пачка этого масла, если ее упаковка стоит 1 рубль?

Эту задачку Вы решите влегкую - а ведь здесь то же самое. Элементарная пропорция плюс смещение на стоимость упаковки.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2005.12.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.013 c
2-1133375394
Сергей А.
2005-11-30 21:29
2005.12.18
3 вопроса по взаимодействию с DBGrid


2-1132831664
Officeman
2005-11-24 14:27
2005.12.18
Про Слои - компонентов на форме


2-1132662738
JTAG
2005-11-22 15:32
2005.12.18
Ув. Доны подскажите понадобилось считать параметры командной


8-1121182959
fess
2005-07-12 19:42
2005.12.18
Использование серии Shape в Charte


14-1132731745
msguns
2005-11-23 10:42
2005.12.18
Перспективы нашей профессии





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский