Programação  
 
Conhecimento computador >> Programação >> Programação PHP /MySQL >> 
Como desenhar um coração com PHP GD
A linguagem de programação , pré-processador de hipertexto ( PHP) tem uma biblioteca de gráficos chamado gráficos desenhar ( GD) . GD permite criar dinamicamente as imagens de acordo à evolução das circunstâncias , como gráficos que estão sempre atualizados ou marcas d'água em imagens enviados por usuários . Se você quer desenhar um coração ou de qualquer outra forma , afiar suas habilidades para criar qualquer tipo de imagem que você deseja irá expandir as possibilidades do que você pode fazer com a biblioteca GD. Instruções
1

Abra um editor de texto que não faz rica formatação de texto, como o Bloco de Notas e digite o tag PHP abertura : . 2

Escreva uma função Bézier para desenhar curvas . A biblioteca de funções GD não inclui tal função , então crie o seu próprio ( consulte Recursos). A função a seguir usa a função GD " imagesetpixel ", que define um pixel nas coordenadas especificadas pelos segundo e terceiro parâmetros. O quarto parâmetro especifica a cor e , como acontece com a maioria das funções GD, o primeiro parâmetro é um identificador de imagem .

Função bezier (& $ img , $ x, $ y , $ cor, $ 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 ]);

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

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

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

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

}

}
3

Inicializar a imagem e as cores que você precisa. No seguinte exemplo de código, a imagem é inicializada para ser 200 por 200 pixels , usando a função " imagecreate " , que também cria a imagem identificador " $ img ". As cores vermelho e branco são inicializados com a função " imagecolorallocate " , especificando os valores de 0 a 255 para o vermelho, verde e azul. A primeira cor inicializado se tornará a cor de fundo

$ img = imagecreate (200, 200); .

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

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

Crie duas matrizes para os x e y-coordenadas de quatro pontos que vai determinar a forma da curva de Bézier . Para especificar a forma da curva , pensar em termos de dois vetores tangentes , cuja magnitude determina a quantidade de influência a direção do vetor tem sobre a curva , bem como o caminho de uma bola caindo em um vento forte. O primeiro dos quatro pontos especifica um dos pontos finais da curva ea cauda do primeiro vetor , eo segundo especifica o chefe do vetor. A distância entre os pontos corresponde com a magnitude e a sua posição relativa determina a direcção . O terceiro ponto é a cabeça do segundo vetor eo quarto ponto é a cauda do vetor eo outro terminal.

No exemplo a seguir , os quatro pontos são (100, 40) , (150, -10) , ( 250 , 80 ) e ( 100 , 180 ) , em que o canto superior esquerdo da imagem é ( 0 , 0 ) . As coordenadas -x para os parâmetros são ambos 100 , o que os centros na tela da esquerda para a direita. As coordenadas y indicam o primeiro ponto final a 40 está por cima do outro , a 180 . Os chefes de vetores estão ambos acima e à direita de seus respectivos terminais. Separe os e - x- y coordenadas com as próprias matrizes :

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

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

Desenhe a curva com a função de Bézier criado no passo 2. Na função de exemplo, o primeiro parâmetro é o identificador de imagem , e os próximos dois parâmetros são as matrizes para os x e y coordenadas , o quarto é a cor , eo último é a resolução . O parâmetro resolução determina o número de pontos a ser desenhada, assim especificar números maiores para curvas bem definidas . Por exemplo, digite :

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

Redefinir as coordenadas para desenhar a curva no lado esquerdo do o coração, e traçá-lo com a função de Bézier . Os parâmetros para a curva à esquerda são as mesmas que as para a direita . A única coisa que muda é as coordenadas x para as cabeças de vetor. Os novos precisa ser tão grande para a esquerda do centro como os anteriores foram à direita do centro , a fim de cada um dos lados a ser como uma imagem de espelho da outra . Por exemplo, digite :

$ x_coords [ 1] = 50 cabeças ;//First vetor foi de 150

$ x_coords [2] = -50 ;//Second cabeça vetor foi de 250 . .

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

Visualize a imagem e destruir o objeto de imagem para liberar a memória . A função "header" é necessária para que o navegador irá tratar o resultado como uma imagem. Acabar com o arquivo com o fechamento da tag PHP. Por exemplo, digite :

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

imagepng ( $ img );

imagedestroy ( $ img ); < br >

? >

Anterior :

Próximo : No
  Os artigos relacionados
·Como instalar uma unidade de PHP Mapa 
·Tutorial de sistemas de eventos de construção em PHP 
·Como testar Parse XML 
·Como ocultar uma enquete sobre a Aliança Layout 
·Como armazenar resultados PHP 
·Como substituir cPanel configurações globais para uma…
·A função Multiply no MySQL 
·Como usar o Zend ACL em um ambiente Modular 
·Funções para MySQL com uma variável PHP na Consulta 
·Como atribuir XML para uma variável em PHP 
  Artigos em destaque
·Como começar o ano atual em Java 
·Par /Ímpar Função de Programação C 
·Como Serializar uma String em Java 
·Como criar um certificado DER 
·Como analisar uma cadeia de entrada de Contagem Letras …
·Como chamar um iFrame através de um formulário 
·Como remover duplicatas de um mapa em Java 
·Como fechar serviços WCF 
·Como obter um caractere simples da Keyboard Usando Asse…
·Como limpar JTextField 
Cop e direita © Conhecimento computador http://ptcomputador.com Todos os Direitos Reservados