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