Home Chi sono Mappa del sito Contatti  
 
Java
Apache Wicket
Sistemistica Totocalcio
 
 
Programmare Applicativi...
Presentazione del libro
Panoramica dei contenuti
 
 
Giochi in PHP
Introduzione
Filetto (Tris)
Forza 4
Sudoku
 
 
Tutorial Linux/Unix
Archivio
 
 
Sql
Tutorial su Mysql
 
 
C++
Framework a oggetti
 
Esercizi di programmazione in Pascal->Grafica - Segmenti

Grafica - Segmenti

In questo piccolo tutorial verrà spiegato come implementare un algoritmo in pascal che disegna dei segmenti sullo schermo.

Il sorgente è stato scritto per l'ambiente di sviluppo Turbo Pascal, e come impostazione grafica, viene utilizzata la modalità grafica VGA con risoluzione 640x480 mediante le funzioni assembler in linea.

La funzione seguente si occupa di disegnare un punto sullo schermo con coordinate (x,y) e colore (colore). Il punto viene disegnato se le coordinate sono all'interno del range [0-640][0-480].

Per disegnare una linea tra due punti occorre calcolare tuti i punti di una retta passante fra loro.
Una retta viene definita nel modo segiente:
y=αx+c.
Il simbolo "α" indica il coeffiente angolare della retta, cioè equivale all'incremento di y per ogni incremento unitario di x.
Il coffecente angolare di una retta passante sui punti (x1,y1)(x2,y2) è esattamente:
α=(y2-y1)/(x2-x1)

É intuibile che nel caso in cui |α| (il valore assoluto di α) sia inferiore o uguale a 1 è possibile disegnare la retta utilizzando |x2-x1| punti, altrimenti sono necessari |y2-y1| punti.

Riassumento:
  • se |(y2-y1)/(x2-x1)| è inferiore o uguale a 1 allora si devono disegnare |x2-x1| punti, dove ad ogni incremento unitario di x corisponde un incremento di (y2-y1)/(x2-x1) di y.
  • se |(y2-y1)/(x2-x1)| è maggiore di 1 allora si devono disegnare |y2-y1| punti, dove ad ogni incremento unitario di y corisponde un incremento di (x2-x1)/(y2-y1) di x.


  • La funzione seguente è una funzione che prende una coppia di punti (x1,y1)(x2,y2) e disegna un segmento.

    Vediamo di seguito il corpo del programma dove è stato inserito un algoritmo per ottenere un buon effetto estetico.


    Di seguito il risultato del programma (con 30 segmenti):

    Grafica - Segmenti




    Scarica sorgente ed eseguibile (6 Kb)