|
|
Регистрация | << Правила форума >> | 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
|
|||
|
|||
Спасибо большое)) все работает. я просто ступила чего-то)
|