Изобразить равнобедренный треугольник, вращающийся с постоянной угловой скоростью вокруг своей высоты - Pascal

Узнай цену своей работы

Формулировка задачи:

Изобразить равнобедренный треугольник, вращающийся с постоянной угловой скоростью вокруг своей высоты, расположенной параллельно вертикальной оси экрана.

Решение задачи: «Изобразить равнобедренный треугольник, вращающийся с постоянной угловой скоростью вокруг своей высоты»

textual
Листинг программы
  1. var
  2.   Form1: TForm1;
  3.   a,h,x0,y0,x,dx:integer;
  4.   f:boolean;
  5. implementation
  6.  
  7. {$R *.dfm}
  8. procedure TForm1.FormCreate(Sender: TObject);
  9. begin
  10. a:=(PaintBox1.Width-40) div 2;
  11. h:=PaintBox1.Height-40;
  12. x:=a;
  13. x0:=PaintBox1.Width div 2;
  14. y0:=PaintBox1.Height-20;
  15. dx:=1;
  16. f:=true;
  17. doublebuffered:=true;
  18. end;
  19. procedure TForm1.Button1Click(Sender: TObject);
  20. begin
  21. Timer1.Enabled:=true;
  22. Timer1.Interval:=10;
  23. end;
  24.  
  25. procedure TForm1.PaintBox1Paint(Sender: TObject);
  26. begin
  27. with PaintBox1.Canvas do
  28.  begin
  29.   brush.Color:=clWhite;
  30.   fillrect(Cliprect);
  31.   pen.Color:=clRed;
  32.   moveto(x0-x,y0);
  33.   lineto(x0,y0-h);
  34.   lineto(x0+x,y0);
  35.   lineto(x0-x,y0);
  36.  end;
  37. end;
  38.  
  39. procedure TForm1.Timer1Timer(Sender: TObject);
  40. begin
  41. if f then x:=x-dx
  42. else x:=x+dx;
  43. if(x<=0)or(x>=a)then f:=not f;
  44. PaintBox1.Repaint;
  45. end;

Объяснение кода листинга программы

  1. Создаётся форма с именем Form1.
  2. Переменные a, h, x0, y0, x, dx и f инициализируются значениями, полученными из свойств PaintBox1.
  3. Устанавливается свойство doublebuffered в значение true.
  4. В методе FormCreate вызывается метод PaintBox1.Paint.
  5. Создаётся кнопка с именем Button1.
  6. При нажатии на кнопку вызывается метод Button1Click.
  7. В методе Button1Click устанавливается свойство Interval таймера Timer1 в 10.
  8. В методе PaintBox1.Paint рисуется равнобедренный треугольник с помощью функций brush и moveto, lineto и fillrect.
  9. В методе Timer1Timer происходит изменение значения переменной x в зависимости от значения переменной f.
  10. Если значение x становится меньше нуля или больше или равно a, то значение переменной f меняется на противоположное.
  11. После каждого изменения значения x вызывается метод Repaint для обновления изображения на форме.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.778 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы