Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza Informatica >> Programmazione >> PHP /MySQL Programmazione >> .

Come disegnare un cuore con PHP GD

Il linguaggio di programmazione , Hypertext Preprocessor ( PHP) è una libreria grafica chiamata grafico draw ( GD ) . GD consente di creare dinamicamente le immagini in base al mutare delle circostanze , come ad esempio i grafici che vengono sempre aggiornati o watermark sulle immagini caricati dagli utenti . Se si desidera disegnare un cuore o di qualsiasi altra forma , perfezionare le proprie abilità per creare qualsiasi tipo di immagine che si desidera amplierà le possibilità di ciò che si può fare con la libreria GD . Istruzioni
1

Aprire un editor di testo che non fa la formattazione del testo , ad esempio Blocco note e digitare il tag PHP di apertura : . 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 la funzione GD " imagesetpixel ", che stabilisce un pixel di coordinate specificato dal secondo e il terzo parametro . Il quarto parametro specifica il colore e , come con la maggior parte delle funzioni GD , il primo parametro è un identificatore di immagine.
Funzione

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 - $ da ;

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) + $ da * pow ( $ t , 2) + $ cy * $ t + $ y [ 0 ] ;

imagesetpixel ( $ img , round ( $ xt ) , round ( $ yt ) , $ colore) ;

}

}
3

Inizializzare l'immagine ed i colori che avete bisogno . Nel seguente codice di esempio, l'immagine viene inizializzata ad essere di 200 per 200 pixel , utilizzando 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 array per la x - e y - 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 ha oltre la curva , tanto come il percorso di una pallina cade in un forte vento . Il primo dei quattro punti specifica una delle estremità della curva e la coda del primo vettore , mentre il secondo precisa la testa del vettore . La distanza tra i punti corrisponde alla grandezza e la loro posizione relativa determina la direzione . Il terzo punto è il capo del secondo vettore e il quarto punto è la coda del vettore e l'altro endpoint .

Nel seguente esempio , i quattro punti sono ( 100 , 40 ) , ( 150 , -10 ) , ( 250 , 80 ) e (100 , 180 ) , dove il superiore sinistro dell'immagine è ( 0 , 0 ) . L'X- coordinate per i punti finali sono sia 100, che li concentra nella tela da sinistra a destra . Le coordinate y indicare il primo punto finale a 40 è sopra l'altra a 180 . Le teste vettoriali sono sia sopra ea destra dei rispettivi punti finali . Separare il - x e y - coordinate nelle loro schiere :

$ 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 dell'immagine ; le prossime due parametri sono le matrici per la x - e y - coordinate , mentre il quarto è il colore , e l'ultimo è la risoluzione . Il parametro risoluzione determina il numero di punti da tracciare , quindi specificare i numeri più grandi per 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 della cuore , e tracciare con la funzione di Bézier . I punti finali per la curva sinistra sono uguali a quelli per il diritto . L' unica cosa che cambia è l' x - coordinate per le teste di vettore . Quelli nuovi devono essere quanto più a sinistra del centro, come i precedenti erano a destra del centro in modo che ogni lato per essere come un'immagine speculare dell'altro. Ad esempio, digitare :

$ x_coords [ 1 ] = 50 ;//Prima testa vettoriale è stato 150

$ x_coords [ 2 ] = -50 ;//Seconda testa vettoriale è stato di 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 per il browser tratterà l' uscita come immagine. Terminare il file con la chiusura del tag PHP . Ad esempio, digitare :
intestazione

( " Content-type : image /jpeg " ) ;

imagepng ( $ img ) ;

imagedestroy ( $ img ) ;

? >

 

Programmazione © www.354353.com