| Hjem | Hardware | Netværk | Programmering | software | Fejlfinding | systemer | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringssprog
  • Delphi programmering
  • Java programmering
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl programmering
  • Python Programming
  • Ruby Programming
  • Visual Basics Programmering
  •  
    Computer Viden >> Programmering >> PHP /MySQL programmering >> Content
    Hvordan man tegner et hjerte med PHP GD
    Programmeringssproget , hypertekst præprocessor (PHP ) har en grafikbibliotek kaldet grafik draw ( GD) . GD kan du dynamisk skabe billeder efter skiftende omstændigheder, såsom grafer, der altid er opdateret eller vandmærker om brugerdreven uploadede billeder . Uanset om du ønsker at tegne et hjerte eller en anden form, skarphed dine evner til at skabe nogen form for billede, du ønsker vil udvide mulighederne for, hvad du kan gøre med GD bibliotek . Instruktioner
    1

    Åbn en teksteditor, der ikke gør RTF-formatering , som Notepad , og skriv åbningen PHP tag: ? . < Php
    2

    Skriv en Bézier -funktion til at tegne kurver. GD funktionsbibliotek omfatter ikke en sådan funktion , så oprette din egen (se Resources). Følgende funktion bruger GD funktion " imagesetpixel ", der sætter en pixel på koordinaterne angives af den anden og tredje parametre. Den fjerde parameter angiver den farve , og som med de fleste GD funktioner er den første parameter et billede -id.

    Funktion Bezier ( & $ img , $ x, $ y, $ farve, $ res) { < br >

    $ 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 ])

    $ af = 3 * ( $ y [2] - $ y [1] ) - $ cy ,

    $ y = $ y [3] - $ y [0 ] - $ cy - $ af ,

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

    imagesetpixel ( $ img , rund ( $ xt ) round ( $ yt ) , $ farver),

    }

    }
    3

    Initialiser billedet, og de ​​farver, du har brug for. I det følgende eksempel kode , bliver billedet initialiseres til at være 200 x 200 pixel , ved hjælp af " imagecreate "-funktionen , hvilket også skaber billedets identifier " $ img . " Farverne rød og hvid initialiseres med " imagecolorallocate "-funktionen ved at specificere værdierne fra 0 til 255 for rød , grøn og blå . Den først formaterede farve bliver baggrundsfarven

    $ img = imagecreate (200 , 200 ) .

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

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

    Opret to arrays til x- og y - koordinaterne for de fire punkter , der vil bestemme formen af Bezier-kurve . For at angive formen af ​​kurven , tænke i to tangentvektorer , hvis størrelsesorden bestemmer mængden af ​​svajer vektorens retning har over kurven , ligesom vejen for en faldende bold i en stærk vind . Det første af de fire punkter angiver en af ​​endepunkter af kurven og halen af den første vektor , og den anden angiver lederen af ​​vektoren. Afstanden mellem punkterne svarer til størrelsen og deres relative position bestemmer retningen . Det tredje punkt er leder af den anden vektor , og det fjerde punkt er vektoren hale , og den anden endpoint.

    I det følgende eksempel , de fire punkter er (100 , 40) , (150 , -10 ) , ( 250 , 80) og ( 100 , 180 ) , hvor det øverste , venstre hjørne af billedet er ( 0 , 0 ) . X- koordinaterne for endepunkterne er begge 100 , som centrerer dem i lærredet fra venstre til højre . Y- koordinaterne angiver første slutpunkt ved 40 ligger over den anden ved 180 . Vektoren hoveder er både over og til højre for de respektive endepunkter . Adskil x - og y-koordinaterne i deres egne arrays :

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

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

    Tegn kurven med Bézier funktion, som oprettes i Trin 2 . I eksemplet funktion , er den første parameter billedet identifikator de næste to parametre er arrays for x - og y - koordinater , den fjerde er den farve , og den sidste er opløsningen . Resolutionen parameter bestemmer antallet af point, der skal plottes , så angive et større antal for veldefinerede kurver. Skriv f.eks : Hej

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

    Omdefiner koordinaterne for at tegne kurven på venstre side af hjerte, og plot det med Bézier -funktionen. De endepunkter for den venstre kurve er de samme som dem for retten . Det eneste, der ændres , er x- koordinaterne for vektoren hoveder. De nye skal være så meget til venstre for midten som de foregående var til højre for midten , for hver side at være et spejlbillede af den anden . Skriv f.eks : Hej

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

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

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

    Vis det billede og ødelægge billedet objekt til fri op i hukommelsen . Den " header "-funktionen er nødvendig , så browseren vil behandle output som et billede. Afslut filen med det afsluttende PHP tag . Skriv f.eks : Hej

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

    imagepng ( $ img ),

    imagedestroy ( $ img ) < br >

    ? >

    Forrige :

    næste :
      Relaterede artikler
    ·Min forespørgsel er Fast i MySQL og Slow i PHP 
    ·Sådan deaktiveres Multiple Sender i PHP 
    ·Hvad er en PHP Block 
    ·Tutorial for PHP & SimpleXML attributter 
    ·Sådan oprettes Excel regneark Med MySQL 
    ·Sådan ringer til et eksternt PHP File Form med HTML 
    ·Sådan Konverter PHP variabler i Strings 
    ·Sådan oprettes PHP Kontakt formularer med Fields 
    ·Hvordan bruger PHP for Cell Phone Websites 
    ·PHP __ Autoload Conflict 
      Anbefalede Artikler
    ·Historien om Visual Basic 6.0 
    ·Sådan Indsæt PHP Into JavaScript 
    ·Sådan Fyld en vektor i C 
    ·Hvordan man skriver Embedded Event Manager op Politikke…
    ·Sådan oprettes et link i online fora 
    ·Sådan Konverter en ByteArray OutputStream til en Input…
    ·Sådan at uploade billeder til ASP.Net 
    ·Sådan oprettes en rulleliste i en DataGridView kolonne…
    ·Online PHP Certification 
    ·Sådan Print Perl Debugger 
    Copyright © Computer Viden http://www.computerdk.com