Главная страница
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.059 c
2-1133377981
kernef
2005-11-30 22:13
2005.12.18
Помогите разобраться с математикой!


2-1133761215
Nemiroff
2005-12-05 08:40
2005.12.18
Размеры окна при разворачивании


8-1112926472
Deedlit
2005-04-08 06:14
2005.12.18
ImageList => SpeedButton


2-1133721142
LordPZ
2005-12-04 21:32
2005.12.18
Хочу сделать, но не знаю как.


2-1133445304
oleggar
2005-12-01 16:55
2005.12.18
word8