Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Geometria - unit_cerchi.pas

unit_cerchi.pas

Caricato da: Poggi Marco
Scarica il programma completo

  1. unit unit_Cerchi;
  2.  
  3. {$mode objfpc}{$H+}
  4.  
  5. interface
  6.  
  7. uses
  8.   Classes, SysUtils,
  9.   grafica, tpenna, unit_figura_base;
  10.  
  11. type TCerchi=class(FiguraBase)
  12.    private
  13.      var estremi:tSegmento;
  14.    public
  15.      constructor crea(seme:Ttavola);
  16.      procedure setPuntoInizio(x, y: integer); override;
  17.      procedure setPuntoFine(x, y: integer); override;
  18.      procedure traccia; override;
  19.      function denominazione: string; override;
  20.      function perimetro: double; override;
  21.      function area: double; override;
  22. end;
  23.  
  24.  
  25. implementation
  26.  
  27. constructor TCerchi.crea(seme:Ttavola);
  28. begin
  29.    inherited crea(seme);
  30.    estremi.inizio.x:=0.0;
  31.    estremi.inizio.y:=0.0;
  32.    estremi.inizio.valido:=True;
  33.    estremi.fine.x:=0.0;
  34.    estremi.fine.y:=0.0;
  35.    estremi.fine.valido:=True;
  36. end;
  37.  
  38. procedure TCerchi.setPuntoInizio(x, y: integer);
  39. begin
  40.    estremi.inizio.x:=x;
  41.    estremi.inizio.y:=y;
  42.    inizializzata:=true;
  43. end;
  44.  
  45. procedure TCerchi.setPuntoFine(x, y: integer);
  46. begin
  47.    estremi.fine.x:=x;
  48.    estremi.fine.y:=y;
  49. end;
  50.  
  51. procedure TCerchi.traccia;
  52. begin
  53.    setPennaInfoglio();
  54.    foglio.cerchio(estremi.inizio.x, estremi.inizio.y, estremi.distanza);
  55. end;
  56.  
  57. function TCerchi.denominazione: string;
  58. begin
  59.    denominazione:=format('Cerchio in (%0.0f | %0.0f) e raggio %0.2f', [estremi.inizio.x, estremi.inizio.y, estremi.distanza]);
  60. end;
  61.  
  62. function TCerchi.perimetro: double;
  63. var raggio:double;
  64. begin
  65.    raggio:=estremi.distanza;
  66.    perimetro:=raggio * 2.0 * PI
  67. end;
  68.  
  69. function TCerchi.area: double;
  70. var raggio:double;
  71. begin
  72.   raggio:=estremi.distanza;
  73.   area:=raggio * raggio * PI;
  74. end;
  75.  
  76. end.