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_linee.pas

unit_linee.pas

Caricato da: Poggi Marco
Scarica il programma completo

  1. unit unit_linee;
  2.  
  3. {$mode objfpc}{$H+}
  4.  
  5. interface
  6.  
  7. uses
  8.   Classes, SysUtils,
  9.   grafica, tpenna, unit_figura_base;
  10.  
  11. type TLinee=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. implementation
  25.  
  26. constructor TLinee.crea(seme:Ttavola);
  27. begin
  28.    inherited crea(seme);
  29.    estremi.inizio.x:=0.0;
  30.    estremi.inizio.y:=0.0;
  31.    estremi.inizio.valido:=True;
  32.    estremi.fine.x:=0.0;
  33.    estremi.fine.y:=0.0;
  34.    estremi.fine.valido:=True;
  35. end;
  36.  
  37. procedure TLinee.setPuntoInizio(x,y:integer);
  38. begin
  39.    estremi.inizio.x:=x;
  40.    estremi.inizio.y:=y;
  41.    inizializzata:=true;
  42. end;
  43.  
  44. procedure  TLinee.setPuntoFine(x, y: integer);
  45. begin
  46.    estremi.fine.x:=x;
  47.    estremi.fine.y:=y;
  48. end;
  49.  
  50. procedure TLinee.traccia;
  51. begin
  52.    setPennaInfoglio();
  53.    foglio.linea(estremi);
  54. end;
  55.  
  56. function TLinee.denominazione: string;
  57. begin
  58.    denominazione:=Format('Linea in (%4.0f | %4.0f) - (%4.0f | %4.0f)', [estremi.inizio.x, estremi.inizio.y, estremi.fine.x, estremi.fine.y]);
  59. end;
  60.  
  61. function TLinee.perimetro: double;
  62. begin
  63.    perimetro:=estremi.distanza;
  64. end;
  65.  
  66. function TLinee.area: double;
  67. begin
  68.    area:=0.0;
  69. end;
  70.  
  71. end.