Aprire un editor di testo che non fa la formattazione del testo , ad esempio Blocco note e digitare il tag PHP di apertura : . 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. 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) ; } } 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 ) ; 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 ) ; 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) ; 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) ; 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 : ( " Content-type : image /jpeg " ) ; imagepng ( $ img ) ; imagedestroy ( $ img ) ; ? >
Funzione
3
4
5
6
7
intestazione
Informazioni correlate
Programmazione © www.354353.com