Jump to content


Photo

Desenho De Plano Cartesiano Com A Biblioteca Gd


  • Faça o login para participar
3 replies to this topic

#1 luisa27

luisa27

    Novato no fórum

  • Usuários
  • 8 posts
  • Sexo:Não informado

Posted 19/08/2008, 22:00

Olá pessoal,

Fiz um plano cartesiano para desenhar retas, porém estou com o seguinte problema: não consigo variar a posição da reta. Vou colocar meu código e abaixo explico melhor.

<?php

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

$Width=541;
$Height=541;

//cria uma imagem com as proporções passadas pelas variáveis
$img = ImageCreateTrueColor($Width, $Height);

//Aloca cor para o preenchimento da imgem
$bg = imagecolorallocate($img, 255, 255, 255); // Utiliza o padrão R.G.B de cor (red, green, blue) nesta ordem.
imagefill($img, 0, 0, $bg);

$fg = imagecolorallocate($img, 255, 0, 0);
imagefill($img, 0, 0, $bg);


//Aloca cor para a grade a ser desenhada
$grid = imagecolorallocate($img, 256, 245, 249);

//Aloca cor para o retangulo da borda
$borda = imagecolorallocate ($img, 0, 0, 0);

//Agrega estilos ou cores definidas anteriormente no código intercalando seus pixels em um mesmo desenho (faz uma mistura de cores)
imagesetstyle($img, array($bg, $grid));
imagegrid($img, $Width, $Height, 10, IMG_COLOR_STYLED);
//makegrid($img, $Width, $Height, 10, $grid);

$x1 = 0;
$y1 = 0;
$x2 = 541;
$y2 = 541;

$x1 = (271 - $x1);
$y1 = (271 - $y1);

function vetor(){

global $img;
global $x1;
global $y1;
global $x2;
global $y2;
global $verde;

imagesetthickness($img, 2);
$vetor = imageline ($img, $x1, $y1, $x2, $y2, $verde);

}

//Desenha as linhas dos eixos
imageline($img, 270, 0, 270, 540, $borda); //Eixo Y
imageline($img, 0, 270, 540, 270, $borda); //Eixo X

//Desenha a linha vermelha para a escala do eixo x
for($l=0;$l<=540;$l+=10)
{
if($da == 0) { $da = 1; }
elseif($da == 1){
//imageline($img,$l,270,$l+2,270,$fg);
imagefilledellipse($img, $l, 270, 5, 5, $fg);
//imagerectangle($img, $l+2,$l+3,$l+3,$l+4, $fg);
$da = 0;
}
}

//Desenha a linha vermelha para a escala do eixo y
for($l=10;$l<=540;$l+=10)
{
if($da == 0) { $da = 1; }
elseif($da == 1){
//imageline($img,$l,270,$l+2,270,$fg);
imagefilledellipse($img, 270, $l, 5, 5, $fg);
//imagerectangle($img, $l+2,$l+3,$l+3,$l+4, $fg);
$da = 0;
}
}

//Desenha um retangulo para a borda
//Define a espessura das linhas e do retângulo
imagesetthickness($img, 2);
imagerectangle($img , 0, 0, 540, 540, $borda);

$verde = imagecolorallocate($img, 255, 0, 125);

imagesetthickness($img, 2);
imageline ($img, 0, 0, 541, 541, $verde);

vetor();

ImagePNG($img);

ImageDestroy($img);

//Função que gera as linhas da grade
function imagegrid($image, $w, $h, $s, $color)
{
for($iw=1; $iw<$w/$s; $iw+=2){imageline($image, $iw*$s, 0, $iw*$s, $w, $color);}
for($ih=1; $ih<$h/$s; $ih+=2){imageline($image, 0, $ih*$s, $w, $ih*$s, $color);}
}

?>
As variáveis: $x1, $y1, $x2 e $y2 na realidade vão receber ainda valores de um $_POST, porém por motivo de teste coloquei valor fixo, no entanto com os valores apresentados deveria criar uma reta a partir do centro do plano cartesiano, mas não estou conseguindo fazer isto neste código. O interessante é que a mesma função em outro código funciona conforme o esperado. mas preciso que isto funcione aqui no plano cartesiano.


Abaixo vai o código da função funcionando como o esperado para o código acima.

<?php

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

$Width=541;
$Height=541;

$img = ImageCreateTrueColor($Width, $Height);

//Aloca cor para o preenchimento da imgem
$bg = imagecolorallocate($img, 250, 250, 255);
imagefill($img, 0, 0, $bg);

$verde = imagecolorallocate($img, 255, 0, 255);

$x1 = 0; //$_POST();
$y1 = 0; //$_POST();
$x2 = 300; //$_POST();
$y2 = 300; //$_POST();

$x1 = (270 - $x1);
$y1 = (270 - $y1);

$x2 = (270 - $x2);
$x2 = (270 - $y2);

function vetor(){

global $img;
global $x1;
global $y1;
global $x2;
global $y2;
global $verde;

imagesetthickness($img, 2);
$vetor = imageline ($img, $x1, $y1, $x2, $y2, $verde);

}

vetor();

ImagePNG($img);
ImageDestroy($img);
?>
Por favor me ajudem a encontrar o erro do primeiro código, por favor.... :( :blink:

Edição feita por: lwirkk, 19/08/2008, 23:17.
Adicionado a tag [code]/[codebox] para melhor visualização do código-fonte.


#2 HaroNism

HaroNism

    Super Veterano

  • Usuários
  • 15385 posts
  • Sexo:Masculino
  • Localidade:San Miguel de Tucuman

Posted 12/10/2017, 02:36

Resultados Propecia levitra plus Acheter Viagra 25mg Ou Acheter Lioresal
No Presciption Amoxicillin viagra online prescription Imodium Cialis Online Pharmacy Amoxicillin And Muscle Aches
Levitra Erfahrungswerte Amoxicilina Bacterial Infections Medication Visa Rochester Viagra Wirkt Nicht Forum buy viagra Cialis Roma

#3 LarPhozyHah

LarPhozyHah

    Super Veterano

  • Usuários
  • 14515 posts
  • Sexo:Masculino
  • Localidade:San Miguel de Tucuman

Posted 12/10/2017, 13:45

Prezzi Viagra Originale Generique Du Cytotec viagra Viagra Combo On Line Free Shipping Dutasteride Internet Medication Shop Overseas
Cephalexin Chemical Composition viagra Mentax How Much Amoxicillin For A Cat
Cannadian Pharmacy Birth Control And Amoxicillin Cephalexin Interaction With Acohol viagra Nizoral Canada Isotretinoin Mail Order Virginia Beach Buy Brand Cialis
Levitra Au Maroc viagra Viagra Prix Au Maroc Buy Prevacid Solutab Online Achat En Ligne Viagra
Cialisis 20mg Online Purchase Purchase Isotretinoin Without Rx Online Cipro No Prescription online pharmacy Keflex Rubber Expansion Joints Zithromax Discount Card Cialis Duree

#4 RonsisM

RonsisM

    Super Veterano

  • Usuários
  • 15724 posts
  • Sexo:Masculino
  • Localidade:Plovdiv

Posted 13/10/2017, 16:44

Iv Zithromax generic viagra Online Zentel Vardenafil Withdrawal Viagra Salud Valium
Priligy Seguridad Social viagra Prix Cytotec Au Maroc
Compra Viagra In Farmacia Albuterol No Perception Needed No Prescription Generic Ed Meds levitra brand Meinungen Zu Priligy Viagra Generico Femenino Amoxicillin Effectiveness
Buy Hczt levitra online pharmacy in usa Propecia Absetzen
Nurse Responsibility In Giving Amoxicillin Order Elocon Best Website Overseas generic viagra Viagra E Cialis Effetti Collaterali
Achat Viagra En France En Vannes Propecia Payment Levitra Au Maroc viagra Tabac Et Baclofen What Is The Drug Cephalexin
Viagra 100mg Euro Xl Pharmacy Vip buy viagra Can You Get Accutane In Canada Viagra Bei Bluthochdruck
Cheap Canadian Prescriptions Online Where Is The Best Place To Buy Viagara acquista vardenafil Amoxicillin Symtoms
Cialis Prix Libre viagra Buy Doxycycline Online No Prescription Levofloxacin Propecia Cipla Canadian
Clomid Date Regles Progesterone Website Mastercard Accepted Overseas viagra Le Viagra Sur Ordonnance




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq