Ir para conteúdo
Fórum Script Brasil
  • 0

Cheguei A Uma Conclusao..


rEd nEcK *

Pergunta

Oi !

Gente eu tava vendo como trabalhar com a biblioteca GD no php... vixiiiiiiiiiiii da para fazer cada coisa que eu desacredito !

Enfim tudo precisa da maldita MATEMATICA sad.gif, queria saber como os caras chegam naqueles numeros, como os caras cauculao tudo?

Olha o link:

Imagem bem simples *rs*

Ate desanima os pato como eu sad.gif

Olha o codigo:

<?php

// this example is provided by poxy at klam dot is

// create image
$image = imagecreate(100, 100);

// allocate some solors
$white    = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);
$gray    = imagecolorallocate($image, 0xC0, 0xC0, 0xC0);
$darkgray = imagecolorallocate($image, 0x90, 0x90, 0x90);
$navy    = imagecolorallocate($image, 0x00, 0x00, 0x80);
$darknavy = imagecolorallocate($image, 0x00, 0x00, 0x50);
$red      = imagecolorallocate($image, 0xFF, 0x00, 0x00);
$darkred  = imagecolorallocate($image, 0x90, 0x00, 0x00);

// make the 3D effect
for ($i = 60; $i > 50; $i--) {
   imagefilledarc($image, 50, $i, 100, 50, 0, 45, $darknavy, IMG_ARC_PIE);
  imagefilledarc($image, 50, $i, 100, 50, 45, 75 , $darkgray, IMG_ARC_PIE);
  imagefilledarc($image, 50, $i, 100, 50, 75, 360 , $darkred, IMG_ARC_PIE);
}

imagefilledarc($image, 50, 50, 100, 50, 0, 45, $navy, IMG_ARC_PIE);
imagefilledarc($image, 50, 50, 100, 50, 45, 75 , $gray, IMG_ARC_PIE);
imagefilledarc($image, 50, 50, 100, 50, 75, 360 , $red, IMG_ARC_PIE);


// flush image
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
?> 
Porem como eu chego nesses numeros:
for ($i = 60; $i > 50; $i--) {
   imagefilledarc($image, 50, $i, 100, 50, 0, 45, $darknavy, IMG_ARC_PIE);
  imagefilledarc($image, 50, $i, 100, 50, 45, 75 , $darkgray, IMG_ARC_PIE);
  imagefilledarc($image, 50, $i, 100, 50, 75, 360 , $darkred, IMG_ARC_PIE);
}

imagefilledarc($image, 50, 50, 100, 50, 0, 45, $navy, IMG_ARC_PIE);
imagefilledarc($image, 50, 50, 100, 50, 45, 75 , $gray, IMG_ARC_PIE);
imagefilledarc($image, 50, 50, 100, 50, 75, 360 , $red, IMG_ARC_PIE);

Se alguém puder ajudar!

é isso

abracos

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Cara, nem é *tão* complexo quanto parece.. É só ter uma noção básica de geometria, e ter um pouco de prático para ler o manual do php.

Vou tentar explicar o que eu entendi do manual para a função imagefilledarc

a sintaxe dela é: bool imagefilledarc (resource image, int cx, int cy, int w, int h, int s, int e, int color, int style)

Vou explicar parâmetro por parâmetro:

image = um resource de uma imagem criada com a funcao imagecreate

cx, cy = são as coordenadas X e Y do centro do círculo (ou elipse) que você quer criar.. são as coordenadas relativas à imagem que você passou no primeiro parametro, lembrando que 0x0 é o canto superior esquerdo.

w, h = o comprimento horizontal e vertical da elipse.. é como se fosse o diametro, mas você pode especificar valores diferentes para w e h, assim será uma figura oval.. se w e h forem identicos, será um circulo

s, e = são os pontos iniciais e finais da elipse que você está criando, em GRAUS.. é util para fazer pedacos de pizza.. se você quiser fazer um circulo completo mesmo, especifique 0º e 360º.. se quiser fazer, por exemplo, uma semicircunferencia na parte esqueda, especifique 90º e 270º

color = um resource de uma cor criada com a função imagecolorallocate

style = pode ser:

IMAGE_ARC_PIE = é o padrão do que você esperaria dessa função.. cria a circunferencia

IMAGE_ARC_CHORD = cria apenas uma linha reta ligando os pontos inicias e finais da circunferencia.. É o contrário do IMAGE_ARC_PIE.. se você por exemplo utiliza-la com o exemplo do 90º e 270º, vai traçar um diamêtro vertical.

IMAGE_ARC_NOFILL = quando você quer q trace apenas a linha externa (circunferencia), sem preencher com cor a parte interna (circulo)

IMAGE_ARC_EDGED = usado apenas junto com o IMAGE_ARC_NOFILL, fala pra traçar uma linha entre o centro da circunferencia e os pontos iniciais e finais.. Assim você pode fazer apenas a linha externa de um pedaço de pizza

É isso aí.. agora vamos entender o que o cara fez no exemplo..

Simples, pra criar o efeito 3D, ele desenhou 60 círculos, um sobreposto ao outro, com diferença de 1 pixel, para criar a parte escura do desenho.. seria a altura diso daí..

Daí ele fez um desenho só, sobreposto aos outros 60, com cores mais caras, para fazer a parte de cima..

Bom, espero ter ajudado um pouco.. Hehe, e acabei de aprender muito tb.. Adoro estudar exemplos assim e tentar descobrir como as coisas funcionam..

Link para o comentário
Compartilhar em outros sites

  • 0

oops, hehe, ele criou só 10.. hehe é q eu vi o 60 e logo imaginei q ele tinha ido até o 0.. bom, aí ele usou de 60 até 51 ao invés de 10 até 1 (ou 9 até 0) pra já aproveitar o valor de $i tb para o posicão q ele queria na imagem, pois 50 é o meio dela, e é onde ele desenha o circulo superior, com as cores mais claras..

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,2k
×
×
  • Criar Novo...