Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
Otvorte textový editor , ktorý nerobí bohaté formátovanie textu , ako je napríklad Poznámkový blok , a zadajte otváracia PHP tag : ? . < Php
2
Napíšte funkciu Bézierove pre kreslenie kriviek . Funkcie knižnice GD neobsahuje takú funkciu , tak si vytvorte vlastný ( pozri zdroje ) . Nasledujúca funkcia používa GD funkcie " imagesetpixel " , ktorý stanovuje pixelu na súradniciach určených druhom a treťom parametrov . Štvrtý parameter určuje farbu a , rovnako ako u väčšiny funkcií GD , prvý parameter je identifikátor obrázka .
Funkcia bezier ( & $ img , $ x , $ y , $ farba , $ 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 ] ) ;
dolárov = 3 * ( $ y [ 2 ] - $ y [ 1 ] ) - $ cy ;
$ ay = $ y [ 3 ] - $ y [ 0 ] - $ cy - dolárov , klipart
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 ) + o $ * pow ( $ t , 2 ) + $ cy * $ t + $ y [ 0 ] ;
imagesetpixel ( $ img , round ( $ xt ) , round ( $ yt ) , $ color ) ;
}
}
3
Inicializácia obraz a farby , ktoré potrebujete . V nasledujúcom príklade kóde , obraz je inicializovaný byť 200 na 200 pixelov , pomocou funkcie " imagecreate " , ktorý tiež vytvára imidž identifikátor " $ img . " Farby červená a biela sú inicializované pomocou funkcie " imagecolorallocate " zadaním hodnoty od 0 do 255 pre červenú , zelenú a modrú . Prvá farba inicializácii bude farba pozadia
$ img = imagecreate ( 200 , 200 ) ; .
$ White = imagecolorallocate ( $ img , 255 , 255 , 255 ) ;
$ červená = imagecolorallocate ( $ img , 255 , 0 , 0 ) ;
4
Vytvorte dve polia pre x a y súradníc štyroch bodov , ktoré budú určovať tvar Beziérova krivka . Ak chcete určiť tvar krivky , myslím , že čo sa týka dvoch točných vektorov , ktorých veľkosť určuje množstvo hojdať smer vektora má cez krivky , rovnako ako cesty padajúce gule v silnom vetre . Prvý zo štyroch bodov , určuje jeden z koncových bodov krivky a zadnej časti prvého vektora , a druhý určuje hlavu vektora . Vzdialenosť medzi bodmi zodpovedá veľkosti a ich vzájomná poloha určuje smer . Tretí bod je hlava druhého vektora a štvrtý bod je chvost vektora a druhý koncový bod .
V nasledujúcom príklade , štyri body ( 100 , 40 ) , ( 150 , -10 ) , ( 250 , 80 ) a ( 100 , 180 ) , kde je horný ľavý roh obrázku je ( 0 , 0 ) . Na x - ovej súradnice pre koncové body sú obaja 100 , ktorý im centrá v plátne zľava doprava . Y - súradnice ukazujú prvý koncový bod na 40 je nad sebou na 180. Vektorové hlavy sú ako nad, tak na pravej strane ich koncových bodov . Oddeľte x a y súradnice do vlastných polí :
$ x_coords = array ( 100 , 150 , 250 , 100 ) ;
$ y_coords = array ( 40 , -10 , 80 , 180 ) ;
5
Nakreslite krivku pomocou funkcie Bézierove vytvorili v kroku 2. V príklade funkcie , prvý parameter je identifikátor obrazu , ďalšie dva parametre sú polia pre x a y - ovej súradnice , štvrté je farba , a posledná je rozlíšenie . Parameter rozlíšenie určuje počet bodov , ktoré majú byť vykreslené , takže zadať väčšie číslo pre dobre definované krivky . Napríklad typ :
bezier ( $ img $ x_coords , $ y_coords , $ červená , 500 ) ;
6
Znovu súradnice nakresliť krivku na ľavej strane srdce , a pozemok s funkciou Bézierove . Koncové body pre ľavé krivky sú rovnaké ako tie , na pravej strane . Jediná vec , ktorá sa mení , je na x - súradnice pre vektorové hlavy . Medzi nové musí byť čo najviac naľavo od stredu , ako tie predchádzajúce boli napravo od stredu , aby na každej strane , aby bolo ako zrkadlový obraz druhej . Napríklad typ :
$ x_coords [ 1 ] = 50 ;//Prvý vektor hlava bola 150
$ x_coords [ 2 ] = -50 ;//Second vector hlava bola 250. .
bezier ( $ img $ x_coords , $ y_coords , $ červená , 500 ) ;
7
Zobrazte snímku , a zničiť objekt obrázka uvoľniť pamäť . Funkcia " hlavičkou " , je nutné, aby prehliadač bude považovať výstup ako obrázok . Ukončenie súbor s koncovou značku PHP . Napríklad typ :
header ( " Content - type : image /png " ) ;
imagepng ( $ img ) ;
imagedestroy ( $ img ) ;
>