Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.18;
Скачать: CL | DM;

Вниз

Работа с 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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.028 c
14-1133010638
Mike Kouzmine
2005-11-26 16:10
2005.12.18
Японцы посадили спутник на астероид.


2-1132415297
Aleks
2005-11-19 18:48
2005.12.18
Какой компонент использовать


2-1133250688
Vis74
2005-11-29 10:51
2005.12.18
Как при запуске программы определить версию ОС и если...


4-1129642372
oleggar
2005-10-18 17:32
2005.12.18
управление приложениями


3-1130749811
alex_1234
2005-10-31 12:10
2005.12.18
D6,ZEOS,MySQL: не работает :-(