Welkom op de Nederland Computer Kennisnetwerk!  
 
Zoeken computer kennis
Home Hardware Netwerken Programmering Software Computerstoring Besturingssysteem
Computer Kennis >> Programmering >> PHP /MySQL Programmering >> Content
Hoe maak je een Heart Draw Met PHP GD
De programmeertaal , hypertext preprocessor ( PHP ) heeft een grafische bibliotheek genaamd graphics draw ( GD ) . GD stelt u in staat om dynamisch afbeeldingen op basis van veranderende omstandigheden , zoals grafieken die altijd worden bijgewerkt of watermerken op door gebruikers geüploade afbeeldingen te maken . Of u wilt een hart of een andere vorm te tekenen , slijpen van uw vaardigheden om elke vorm van het beeld dat u wilt zal de mogelijkheden van wat je kunt doen met de GD library breiden creëren . Instructies
1

Open een teksteditor die tekst met opmaak , zoals Kladblok niet doet , en typ de opening PHP tag : ? . Schrijf een Bezier- functie voor het tekenen van bochten . De GD -functie bibliotheek niet een dergelijke functie niet onder , dus maak uw eigen ( zie Bronnen ) . De volgende functie maakt gebruik van de GD -functie " imagesetpixel , " die een pixel op de door de tweede en derde parameters coördinaten sets . De vierde parameter geeft de kleur en , zoals bij de meeste GD functies , de eerste parameter is een beeld identifier .

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

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

$ ay
= $ y [ 3 ] - $ y [ 0 ] - $ cy - $ door ;

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

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

}

}
3


initialiseren het beeld en de kleuren die je nodig hebt . In het volgende voorbeeld code , wordt de afbeelding geïnitialiseerd te zijn 200 bij 200 pixels , met behulp van de functie " imagecreate " , die ook zorgt voor het beeld identifier " $ img . " De kleuren rood en wit worden geïnitialiseerd met de functie " imagecolorallocate " onder vermelding van de waarden van 0 tot 255 voor rood , groen en blauw . De eerste kleur geïnitialiseerd zal de achtergrondkleur geworden

$ img = imagecreate ( 200 , 200 ) ; .

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

$ red = imagecolorallocate ( $ img , 255 , 0 , 0 ) ;
4

Maak twee arrays voor de x - en y - coördinaten van de vier punten die de vorm van het bepalen Bezier -curve . Om de vorm van de curve te geven , denken in termen van twee raakvectoren , waarvan de grootte bepaalt de hoeveelheid zwaaien richting van de vector heeft meer dan de curve , net als de baan van een vallende bal in een sterke wind . De eerste van de vier punten specificeert een van de eindpunten van de curve en de staart van de eerste vector en de tweede geeft het hoofd van de vector . De afstand tussen de punten is de omvang en hun relatieve positie bepaalt de richting . Het derde punt is het hoofd van de tweede vector en het vierde punt is de staart van de vector en het andere eindpunt .

In het volgende voorbeeld , de vier punten zijn ( 100 , 40 ) , ( 150 , -10 ) , ( 250 , 80 ) en ( 100 , 180 ) , waarbij de linkerbovenhoek van het beeld ( 0 , 0 ) . De x - coördinaten van de eindpunten beide 100 , waardoor ze gecentreerd in het doek van links naar rechts . De y - coördinaten dan het eerste eindpunt na 40 boven de ander op 180 . De vector koppen boven en rechts van de respectievelijke eindpunten . Scheid de x - en y - coördinaten in hun eigen arrays

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

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

Trek de kromme met het Bezier -functie gemaakt in stap 2 . In de voorbeeld -functie , de eerste parameter is het beeld identifier , de volgende twee parameters zijn de arrays voor de x - en y - coördinaten , de vierde is de kleur , en de laatste is de resolutie . De parameter resolutie bepaalt het aantal punten te worden uitgezet , dus geef grotere aantallen voor goed gedefinieerde curven . Typ bijvoorbeeld :

bezier ( $ img , $ x_coords , $ y_coords , $ rood , 500 ) ;
6

Redefine de coördinaten aan de bocht aan de linkerkant van tekenen het hart , en het plot met de Bezier -functie . De eindpunten van de bocht naar links zijn dezelfde als die voor de juiste . Het enige dat verandert is de x - coördinaten van de vector hoofden . De nieuwe vrijheid nodig hebben om links van het midden om zo het voorgaande zouden rechts van het midden , zodat elke kant om een ​​spiegelbeeld van de andere soortgelijke . Typ bijvoorbeeld :

$ x_coords
[ 1 ] = 50 ;//First vector hoofd was 150

$ x_coords [ 2 ] = -50 ;//Second vector hoofd was 250 . .

bezier ( $ img , $ x_coords , $ y_coords , $ rood , 500 ) ;
7

Geef het beeld en het beeld object te vernietigen om vrij te maken van het geheugen . De functie " kop " is noodzakelijk, zodat de browser zal de output als een afbeelding te behandelen . Beëindig het bestand met het sluiten van de PHP -tag . Typ bijvoorbeeld :

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

imagepng
( $ img ) ;

imagedestroy
( $ img ) ; < br >

? >

Previous: Next:
  PHP /MySQL Programmering
·De Basic MySQL Connection in P…
·Hoe maak je een periode Verwij…
·Hoe maak je een PHP Login Scri…
·Aantal Woorden in een PHP Stri…
·Hoe maak je een datumnotatie i…
·Hoe kan ik PHP code in een Sta…
·Hoe maak je een PHP -bestand c…
·Slechte Word Filters in PHP 
·Hoe hebben lijsten in Block PH…
  Related Articles
Hoe maak je een Combo Box Maak in Visual…
Hoe maak je een Check Box Maak in Visual…
Hoe maak je een tekstvak maken in Visual…
Hoe maak je een optie Box in Visual Basi…
Hoe maak je een schijf keuzelijst in Vis…
Hoe kan ik een keuzelijst maken in Visua…
Hoe kan ik een Picture Box Maak in Visua…
Hoe een bestand keuzelijst Maak in Visua…
Hoe kan ik een afbeelding Box Maak in Vi…
  Programmering Articles
·De verschillen tussen Java en JavaScript…
·Hoe maak je een HTML e-mail Flyer voor e…
·Hoe te Telefoonnummers opmaken in PHP 
·Hoe te Cast Char naar Int 
·Hoe te importeren uit . SQL in MySQL 
·Hoe maak je een fout ontdekt in VB6 Catc…
·Hoe maak je een functie in Visual Basic …
·Hoe maak je een woordenboek maken met tw…
·Hoe te Echo gebruiken in Python 
Copyright © Computer Kennis http://www.nldit.com