Datamaskin
  | Hjem | Hardware | Nettverk | Programmering | Software | Feilsøking | Systems | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringsspråk
  • Delphi Programming
  • Java Programming
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl Programming
  • Python Programming
  • Ruby Programming
  • Visual Basics Programming
  •  
    Datamaskin >> Programmering >> PHP /MySQL programmering >> Content
    Hvordan Tegn et hjerte med PHP GD
    Programmeringsspråket , hypertekst preprocessor (PHP ) har et grafisk bibliotek som heter grafikk uavgjort ( GD ) . GD kan du dynamisk lage bilder i henhold til endrede omstendigheter, for eksempel grafer som alltid er oppdatert eller vannmerker på brukerdefinerte opplastede bilder . Enten du ønsker å tegne et hjerte eller en annen form, skjerpe dine ferdigheter til å skape noen form for bildet du vil vil utvide mulighetene for hva du kan gjøre med GD biblioteket. Instruksjoner
    en

    Åpne en teksteditor som ikke gjør rik tekstformatering , for eksempel Notisblokk , og skriv åpningen PHP tag: ? . < Php
    2

    Skriv en Bézier -funksjon for å tegne kurver. GD funksjon bibliotek omfatter ikke en slik funksjon , så lag din egen ( se Ressurser) . Følgende funksjon bruker GD funksjonen " imagesetpixel ", som setter en piksel på koordinatene angitt av den andre og tredje parametere. Den fjerde parameteren angir farge , og som med de fleste GD funksjoner, er den første parameteren et bilde identifikator.

    Funksjon Bezier ( & $ img , $ x , $ y , $ farge , $ 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 ] ) ;

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

    $ y = $ y [ 3 ] - $ y [ 0 ] - $ cy - $ av ;

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

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

    }

    }
    3

    Initialiser bildet og fargene du trenger. I følgende eksempel kode , blir bildet initialisert å være 200 av 200 piksler , med " imagecreate "-funksjonen , som også lager bildet identifikator " $ img ". Fargene rødt og hvitt er initialisert med " imagecolorallocate "-funksjonen ved å angi verdiene fra 0 til 255. for rødt , grønt og blått. Den første fargen initialisert vil bli bakgrunnsfargen

    $ img = imagecreate ( 200 , 200 ) ; .

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

    $ rød = imagecolorallocate ( $ img , 255, 0 , 0 ) ;
    4

    Lag to arrays for x - og y - koordinatene til de fire punktene som vil avgjøre formen på Bézier kurve . Å angi formen på kurven , tenke i form av to tangentvektorene , hvis størrelse bestemmer mengden svaie vektorens retning har over kurven , omtrent som banen for en fallende ball i sterk vind. Den første av de fire punktene angir ett av endepunktene av kurven og halen til den første vektoren og den andre angir et innlegg av vektoren . Avstanden mellom punktene som svarer til den størrelse og sin relative posisjon bestemmer retningen . Det tredje punkt er hodet av den andre vektoren og den fjerde punkt er vektoren i halen og det andre endepunktet .

    I det følgende eksempel er de fire punktene (100, 40) , ( ​​150 , -10 ) , ( 250 , 80 ) og ( 100 , 180 ) , der det øvre , venstre hjørne av bildet er ( 0 , 0 ) . Den x- koordinater for de endepunkter er begge 100, som sentrerer dem i lerretet fra venstre til høyre. Den y- koordinatene angir det første endepunktet ved 40 er over den andre ved 180 . Den vektor- hoder er både over og til høyre for sine respektive endepunkter. Separer x - og y - koordinater i egne rekker : en

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

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

    Tegn kurven med Bézier funksjon som er opprettet i trinn to . I eksemplet funksjon , er den første parameteren i bildet identifikator , de neste to parametere er de matriser for x - og y- koordinater , mens den fjerde er fargen , og de siste er oppløsningen . Resolusjonen parameteren bestemmer hvor mange poeng som skal plottes , så angi større tall for godt definerte kurver. For eksempel skrive : en

    Bezier ( $ img , $ x_coords , $ y_coords , $ rød , 500 ) ;
    6

    Omdefiner koordinatene til å trekke kurven på venstre side av hjertet , og plotte det med Bézier -funksjonen. Endepunktene for venstre kurven er de samme som for den rette . Det eneste som endres er x - koordinatene for vektor hoder. De nye trenger å være så mye til venstre for sentrum som de tidligere var til høyre for sentrum i rekkefølge for hver side for å være som et speilbilde av den andre. For eksempel skrive : en

    $ x_coords [ 1 ] = 50 ;//First vektor hodet var 150

    $ x_coords [ 2 ] = -50 ;//Second vektor hodet var 250 . .

    Bezier ( $ img , $ x_coords , $ y_coords , $ rød , 500 ) ;
    7

    Vis bildet og ødelegge bildet objektet for å frigjøre minne . Den " header "-funksjonen er nødvendig for at leseren vil behandle resultatet som et bilde. Avslutt filen med den avsluttende PHP -koden. For eksempel skrive : en

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

    imagepng ( $ img ) ;

    imagedestroy ( $ img );

    ? >

    früher :

     Weiter:
      Relatert Artike
    ·Hvordan få JavaScript dersom det er deaktivert i PHP 
    ·Slik konverterer en ICO til en BMP i PHP 
    ·Hvordan lage en Server Parse for CSS -filer som PHP 
    ·Hvordan å omskrive nettadresser i PHP filer til en ann…
    ·PHP blir ikke henrettet 
    ·Hvordan bygge en gjennomførbar lynmelding On My Websit…
    ·Hvordan deaktivere flere anfører i PHP 
    ·Slik sletter lav prioritet i MySQL 
    ·Hvordan Slå sammen i DB2 SQL 
    ·PHP Fordeler og ulemper 
      Anbefalte artikler
    ·Grunner til å opprette en Subrutine i programmering 
    ·Online VB Trening 
    ·Hvordan bruke JavaScript og PHP i Form Validation 
    ·Hvordan gjøre inorder traversering i Binary Tree in Ja…
    ·Hvordan lage en global variabel i Python 
    ·PHP Count i MySQL Resultater 
    ·Hvordan feilsøke C + + Tags 
    ·Hvordan endre navnet på skjemaet i koden ved hjelp Vis…
    ·Hvordan lage Dynamic Lighting i GTKRadiant 
    ·Slik Send HTML e-post med VB.NET 
    Copyright ©  Datamaskin  http://www.datamaskin.biz/