![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Разработать приложение, которое построит астроиду, задаваемую уравнениями:
x=a*cos3t, y=a*sin3t, где a>0, t от [0, 2pi). cos3 и sin3 это в третьей степени. вывожу систему координат, а график либо смещается, либо вообще не отображается. помогите плизз |
|
#2
|
||||
|
||||
|
Тебе такое надо?
![]() Если да, то вот Код:
procedure TForm1.FormCreate(Sender: TObject);
var
a: Integer;
x, y, t: Real;
begin
a := 10;
t := 0;
while t < 2*PI do
begin
x := a*((3*COS(t) + COS(3*t))) / 4;
y := a*((3*SIN(t) - SIN(3*t))) / 4;
Series1.AddXY(X, Y, '', clRed);
t := t + 0.001;
end;
end;Последний раз редактировалось Kailon, 27.05.2011 в 18:18. |
|
#3
|
|||
|
|||
|
О чем идет речь? паскаль? дельфи? способ реализации? можно и на канвасе точками натыкать...
|
|
#4
|
|||
|
|||
|
да да это)) а что такое Series1.AddXY(X, Y, '', clRed); мне ошибку выдает..
Последний раз редактировалось Мандрюля, 27.05.2011 в 23:21. |
|
#5
|
|||
|
|||
|
Цитата:
да хоть как в принципе-то)) это из госов задача, а способ реализации любой, лишь бы решить |
|
#6
|
|||
|
|||
|
Цитата:
Это добавление точки на графике в TChart. На этапе дизайна надо в TChart создать серию. |
|
#7
|
|||
|
|||
|
а если на канвасе просто сделать, то как?
Код:
procedure TForm1.FormPaint(Sender: TObject);
var
x,y,t,a:real;
begin
a:=2;
Form1.Canvas.MoveTo(0, ClientWidth div 2);
Form1.Canvas.LineTo (ClientHeight, ClientWidth div 2);
Form1.Canvas.MoveTo(ClientHeight div 2,0);
Form1.Canvas.LineTo (ClientHeight div 2, ClientWidth);
{Form1.Canvas.Pixels[200,200]:=clRed; }
while t < 2*PI do
begin
x:= a*((3*COS(t) + COS(3*t))) / 4;
y:= a*((3*SIN(t) - SIN(3*t))) / 4;
Form1.Canvas.Pixels[round(X),round(Y)];
t := t + 0.001;
end;у меня система координат выводится, а сам график нет Последний раз редактировалось Admin, 30.05.2011 в 16:30. |
|
#8
|
||||
|
||||
|
потому что ты просто пишешь pixels, но ничего не присваиваешь
кст, еще ClientWidth и ClientHeight перепутал Код:
procedure TForm1.FormPaint(Sender: TObject);
var
x,y,t,a:real;
begin
a:=200;
Form1.Canvas.MoveTo(0, ClientHeight div 2);
Form1.Canvas.LineTo (ClientWidth, ClientHeight div 2);
Form1.Canvas.MoveTo(ClientWidth div 2,0);
Form1.Canvas.LineTo (ClientWidth div 2, ClientHeight);
{Form1.Canvas.Pixels[200,200]:=clRed; }
t:=0;
while t < 2*PI do
begin
x:= a*((3*COS(t) + COS(3*t))) / 4;
y:= a*((3*SIN(t) - SIN(3*t))) / 4;
Form1.Canvas.Pixels[round(X)+ClientWidth div 2,round(Y)+ClientHeight div 2]:=clBlack;
t := t + 0.001;
end;
end; |
|
#9
|
|||
|
|||
|
Спасибо большое)) все работает. я просто ступила чего-то)
|