Показать сообщение отдельно
  #23  
Старый 07.04.2011, 18:26
AlexSku AlexSku вне форума
Специалист
 
Регистрация: 07.05.2007
Адрес: Москва
Сообщения: 884
Репутация: 21699
По умолчанию

Я тоже предлагаю PaintBox, т.к. это почти напрямую Canvas, а Image в основном для вставки картинок.
Безымянный.jpg
Код:
procedure TForm1.Button1Click(Sender: TObject);
const
  g = 9.8;
var
  x, y: Integer;
  v, a: real;
  i, t, q:    word;
begin
  a:= 45;
  //q:= 0;
  v:= strtoint(LabeledEdit1.Text);
  t:=strtoint(LabeledEdit2.Text);
  x:= 0;
  y:= 0;
  PaintBox1.Canvas.MoveTo(x, PaintBox1.Height - y);
  for i:=1 to t do
  begin
    //q:= q + 1;
    x:= Round(v * cos(a) * i);
    y:= Round((v * sin(a)) * i - g * i * i / 2);
    PaintBox1.Canvas.LineTo(x, PaintBox1.Height - y);
  end;
end;
Y=0 находится вверху (ось Y направлена вниз), поэтому координаты Y пересчитываем.

(можно было и с помощью массива, но я решил попроще)
Ответить с цитированием