Come disegnare un cuore con PHP GD

March 7

Come disegnare un cuore con PHP GD


Il linguaggio di programmazione, ipertesti preprocessore (PHP) è una libreria grafica chiamata Draw Graphics (GD). GD consente di creare in modo dinamico le immagini in base al mutare delle circostanze, come ad esempio i grafici che sono sempre aggiornate o filigrane sulle immagini caricati dagli utenti. Se si desidera disegnare un cuore o di qualsiasi altra forma, affilare le vostre abilità di creare qualsiasi tipo di immagine che si desidera amplierà le possibilità di ciò che si può fare con la libreria GD.

istruzione

1 Aprire un editor di testo che non fa i contenuti multimediali, ad esempio Blocco note e digitare il tag di apertura PHP: <? Php?.

2 Scrivere una funzione di Bézier per disegnare curve. La libreria di funzioni GD non include tale funzione, in modo da creare il proprio (vedi Risorse). La seguente funzione utilizza il "imagesetpixel," la funzione GD che definisce un pixel alle coordinate specificate dal secondo e il terzo parametro. Il quarto parametro specifica il colore e, come la maggior parte funzioni GD, il primo parametro è un identificatore un'immagine.

funzione di Bezier (& $ img, $ x, $ y, $ colore, $ res) {

$ Cx = 3 * ($ x [1] - $ x [0]);

$ BX = 3 * ($ x [2] - $ x [1]) - $ cx;

$ Ax = $ x [3] - $ x [0] - $ cx - $ BX;

$ Cy = 3 * ($ y [1] - $ y [0]);

$ Da = 3 * ($ y [2] - $ y [1]) - $ cy;

$ Y = $ y [3] - $ y [0] - $ cy - $ by;

for ($ i = 0; $ i <= $ res; $ i ++) {

$ T = $ I $ / res;

$ xt = $ ax

pow ($ t, 3) + $ bx pow ($ t, 2) + $ cx * $ t + $ x [0];

$ yt = $ ay pow ($ t, 3) + $ per pow ($ t, 2) + $ cy * $ t + $ y [0];

imagesetpixel ($ img, rotondo ($ xt), round ($ YT), $ colore);

}

}

3 Inizializzare l'immagine ei colori che avete bisogno. Nel seguente codice di esempio, l'immagine viene inizializzato per essere 200 per 200 pixel, con la funzione "imagecreate", che crea anche l'identificativo immagine "$ img." I colori rosso e bianco vengono inizializzati con la funzione "imagecolorallocate" specificando i valori da 0 a 255 per il rosso, verde e blu. Il primo colore inizializzato diventerà il colore di sfondo.

$ Img = imagecreate (200, 200);

$ Bianco = imagecolorallocate ($ img, 255, 255, 255);

$ Rosso = imagecolorallocate ($ img, 255, 0, 0);

4 Creare due matrici per la xey coordinate dei quattro punti che determineranno la forma della curva di Bézier. Per specificare la forma della curva, pensare in termini di due vettori tangenti, la cui ampiezza determina la quantità di influenzare la direzione del vettore è sulla curva, molto simile al percorso di una palla che cade in un forte vento. Il primo dei quattro punti specifica una delle estremità della curva e la coda del primo vettore, e la seconda specifica il capo del vettore. La distanza tra i punti corrisponde alla grandezza e la loro posizione relativa determina la direzione. Il terzo punto è la testa del secondo vettore e il quarto punto è la coda del vettore e altri endpoint.

Nel seguente esempio, i quattro punti sono (100, 40), (150, -10), (250, 80) e (100, 180), dove nell'angolo superiore sinistro dell'immagine è (0, 0). Le coordinate x per i punti finali sono sia 100, che li concentra nella tela da sinistra a destra. Le coordinate y indicano il primo estremo 40 è sopra l'altro a 180. Le teste vettoriali sono entrambi sopra ea destra dei rispettivi punti finali. Separare il xey coordinate nelle proprie matrici:

$ X_coords = array (100, 150, 250, 100);

$ Y_coords = array (40, -10, 80, 180);

5 Disegnare la curva con la funzione di Bézier creato nel passaggio 2. Nella funzione ad esempio, il primo parametro è l'identificatore di immagine; i prossimi due parametri sono le matrici per la xey coordinate; il quarto è il colore; e l'ultimo è la risoluzione. Il parametro risoluzione determina il numero di punti da tracciati, in modo da specificare i numeri più grandi per le curve ben definite. Ad esempio, digitare:

Bezier ($ img, $ x_coords, $ y_coords, $ rosso, 500);

6 Ridefinire le coordinate per disegnare la curva sul lato sinistro del cuore, e tracciare con la funzione Bézier. I punti finali per la curva a sinistra sono uguali a quelli per il diritto. L'unica cosa che cambia è ascisse per le teste vettoriali. I nuovi devono essere quanto più a sinistra del centro, come quelli precedenti erano alla destra del centro in modo che ogni lato sia un'immagine speculare dell'altra simili. Ad esempio, digitare:

$ x_coords [1] = 50; // primo vettore testa era 150.

$ x_coords [2] = -50; // secondo vettore testa era 250.

Bezier ($ img, $ x_coords, $ y_coords, $ rosso, 500);

7 Visualizzare l'immagine e distruggere l'oggetto immagine per liberare la memoria. La funzione "header" è necessario affinché il browser trattare l'output come immagine. Terminare il file con la chiusura del tag PHP. Ad esempio, digitare:

header ( "Content-type: image / png");

imagepng ($ img);

imagedestroy ($ img);

?>