Dator
 |  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
Programmering
  • C /C + + -programmering
  • Computer Programspråk
  • Delphi Programmering
  • Java Programming
  • JavaScript programmering
  • PHP /MySQL Programmering
  • perl Programmering
  • python Programming
  • Ruby programmering
  • Visual Basics Programmering
  • * Dator Kunskap >> Programmering >> PHP /MySQL Programmering >> Content

    Hur man drar ett hjärta med PHP GD

    Programspråket , Hypertext Preprocessor ( PHP ) är ett grafiskt bibliotek som heter grafik draw ( GD ) . GD kan du dynamiskt skapa bilder enligt förändrade omständigheter, t.ex. grafer som alltid är uppdaterade och vattenmärken på användaren laddade - bilder . Oavsett om du vill rita ett hjärta eller någon annan form , vässa dina kunskaper för att skapa någon typ av bild du vill kommer att utöka möjligheterna för vad du kan göra med GD biblioteket . Instruktioner
    1

    Öppna en textredigerare som inte gör RTF-formatering , till exempel Anteckningar , och skriv öppningen PHP -taggen : ? . < Php
    2

    Skriv ett Bézier -funktion för att rita kurvor . GD funktionen biblioteket inte innehåller en sådan funktion , så skapa din egen ( se Resurser ) . Följande funktion använder GD funktionen " imagesetpixel , " som sätter en bildpunkt vid de koordinater som anges av den andra och tredje parametrar . Den fjärde parametern anger färgen och som med de flesta GD -funktioner , är den första parametern en bild identifierare .

    Funktion Bezier ( & $ IMG , $ x , $ y , $ färg , $ 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 ] ) ;

    $ med = 3 * ( $ y [ 2 ] - $ y [ 1 ] ) - $ CY ,

    $ ay = $ y [ 3 ] - $ y [ 0 ] - $ cy - $ av ,

    för ( $ 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 , rund ( $ xt ) , runda ( $ yt ) , $ färg ) ;

    }

    }
    3

    initiera bilden och de färger du behöver . I följande exempelkod , är bilden initieras för att vara 200 gånger 200 pixlar , med hjälp av " imagecreate " -funktion , vilket också skapar bildidentifierare " $ img . " Färgerna rött och vitt initieras med " imagecolorallocate " funktionen genom att ange värden från 0 till 255 för rött , grönt och blått . Den första färgen initieras blir bakgrundsfärgen

    $ img = imagecreate ( 200 , 200 ) ; .

    $ Vit = imagecolorallocate ( $ IMG , 255 , 255 , 255 ) ;

    $ röd = imagecolorallocate ( $ IMG , 255 , 0 , 0 ) ;
    4

    Skapa två matriser för x - och y - koordinaterna för de fyra punkter som kommer att avgöra formen på bézierkurva . Att ange kurvans form , tänka i termer av två tangerande vektorer , vars storlek bestämmer mängden svajar vektorns riktning har över kurvan , ungefär som banan för en fallande boll i en stark vind . Den första av de fyra punkter specificerar en av ändpunkterna på kurvan och svansen av den första vektorn och den andra anger huvudet av vektorn. Avståndet mellan punkterna motsvarar storleken och deras relativa position bestämmer riktningen . Den tredje punkten är att huvudet på den andra vektorn och den fjärde punkten är vektorns svans och den andra ändpunkten .

    I följande exempel , de fyra punkterna är ( 100 , 40 ) , ( 150 , -10 ) , ( 250 , 80 ) och ( 100 , 180 ) , där den övre , vänstra hörnet av bilden är ( 0 , 0 ) . X- koordinaterna för ändpunkterna är båda 100 , som kretsar dem i duken från vänster till höger . Y - koordinater anger den första slutpunkten vid 40 ligger över den andra på 180 . Vektorn huvuden är både över och till höger om deras respektive slutpunkter. Separera den x - och y - koordinater i egna arrayer :

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

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

    Rita kurvan med Bézier funktionen skapade i steg 2 . I exemplet funktionen , är den första parametern bildidentifierare , de närmaste två parametrarna är de matriser för x - och y - koordinater , den fjärde är färgen , och den sista är upplösningen . Resolutionen parameter bestämmer hur många punkter som ska ritas upp , så anger större antal för väl definierade kurvor . Till exempel , typ :

    Bezier ( $ IMG , $ x_coords , $ y_coords , $ röd , 500 ) ;
    6

    Definiera om koordinater för att rita kurvan på vänster sida av hjärtat , och plotta den med Bézier funktionen . Ändpunkterna för vänster kurvan är desamma som de för den högra . Det enda som ändras är x - koordinaterna för vektorn huvuden . De nya måste vara lika mycket till vänster om mitten som tidigare var till höger om mitten för att varje sida ska vara som en spegelbild av den andra . Till exempel , typ :

    $ x_coords [ 1 ] = 50 ;//Första vektor huvud var 150

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

    Bezier ( $ IMG , $ x_coords , $ y_coords , $ röd , 500 ) ;
    7

    Visa bilden och förstöra bilden objektet att frigöra minne . Den " header " -funktionen är nödvändigt för att webbläsaren ska behandla utdata som en bild . Avsluta filen med avslutande PHP -taggen . Till exempel , typ :

    header ( " Content -type : image /png " ) ,

    imagepng ( $ img ) ,

    imagedestroy ( $ img ) ;

    ? > Addera

    Tidigare:

    nästa:
    relaterade artiklar
    ·Hur man sätter in en textruta i MySQL med PHP
    ·Konvertera allt till versaler med PHP
    ·Hur man tar bort den första tomma rad i PHP
    ·Hur man gör ett PHP-skript körs snabbare
    ·PHP Parse Alternativ
    ·Hur Återställ AUTOINCREMENT i MySQL
    ·Hur man testar FFmpeg i PHP
    ·Hur man går med i en Inlaga i MySQL med PHP
    ·Vanliga PHP Bugs
    ·Hur du ändrar PHP Color Scheme i CSS
    Utvalda artiklarna
    ·Hur gör jag läsa innehållet i en Remote webbsida Anv…
    ·Hur man skapar ett Visual Basic -program Använda en If…
    ·Hur man skapar ett API med en församling kod
    ·Hur man gör Python String Suppleanter
    ·Hur man läser siffror från filer i C
    ·Iomanip Funktioner
    ·Formellt Vs . Semi formella Algoritm Metoder
    ·Introduktion till boolska variabler i Java
    ·Hur man dödar ett jobb i ett GNU Batch
    ·Hur man byter Radmatningar i en MySQL String
    Copyright © Dator Kunskap http://www.dator.xyz