Главная страница
    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.024 c
1-1132221476
31512
2005-11-17 12:57
2005.12.18
IXMLNode ошибка доступа при получении ChildNodes


14-1132661452
mr.il
2005-11-22 15:10
2005.12.18
Прикольная вакансия


6-1126018861
Ландграф Павел
2005-09-06 19:01
2005.12.18
Сервер на XP


14-1132335263
lookin
2005-11-18 20:34
2005.12.18
У меня тоже пару вопросов...


2-1133718346
333
2005-12-04 20:45
2005.12.18
PageControl





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский