GD Trapezium?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mravira

mravira

16/02/2009 14:59:00
Quote Anchor link
Hallo allemaal,

Ik wil het volgende in GD gaan tekenen, maar ik weet niet hoe het werkt (beetje nieuw met GD).
Ik heb vier variabelen: Hoogte links, Hoogte rechts, Breedte Boven, Breedte onder.
Die vier variabelen wil ik visualiseren, zodat je een soort trapezium vorm krijgt.

Iemand een idee?
 
PHP hulp

PHP hulp

22/11/2024 06:22:11
 

16/02/2009 15:02:00
Quote Anchor link
Kan je geen gebruik maken van imagefilledpolygon?
 
Mravira

mravira

16/02/2009 15:04:00
Quote Anchor link
Hoe kan ik dat dan het beste doen?
 

16/02/2009 15:37:00
Quote Anchor link
Nou, zo bijvoorbeeld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
  #vier variabelen: Hoogte links, Hoogte rechts, Breedte Boven, Breedte onder.
  #Trapezium.

  $hoogtelinks = 150;
  $hoogterechts = 150;
  $breedteboven = 120;
  $breedteonder = 200;
  // set up array of points for polygon
  $values = array(
            24+(($breedteonder-$breedteboven)/2),  240-$hoogtelinks,  // Point 1 (x, y)
            24+$breedteboven+(($breedteonder-$breedteboven)/2),  240-$hoogterechts, // Point 2 (x, y)
            24+$breedteonder,  240,  // Point 3 (x, y)
            24,  240  // Point 4 (x, y)
            );

// create image
$image = imagecreatetruecolor(250, 250);

// allocate colors
$bg   = imagecolorallocate($image, 200, 200, 200);
$blue = imagecolorallocate($image, 0, 0, 255);

// fill the background
imagefilledrectangle($image, 0, 0, 249, 249, $bg);

// draw a polygon
imagefilledpolygon($image, $values, 4, $blue);

// flush image
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
?>

Moet je zelf nog maar aanpassen e.d.
 
Mravira

mravira

16/02/2009 15:45:00
Quote Anchor link
Dank, ik denk dat ik er zo wel uitkom!
 
Mravira

mravira

16/02/2009 16:47:00
Quote Anchor link
Voor de mensen die ook geinteresseerd zijn, hij is af:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<?php
#vier variabelen: Hoogte links, Hoogte rechts, Breedte Boven, Breedte onder.
#Trapezium.

$hoogtelinks = $_GET['hl'];
$hoogterechts = $_GET['hr'];
$breedteboven = $_GET['bb'];
$breedteonder = $_GET['bo'];  
            
// Het aanmaken van de afbeelding
$image = imagecreate(350, 350);

// Kleuren toekennen
$bg   = imagecolorallocate($image, 255, 255, 204);
$blue = imagecolorallocate($image, 123, 0, 0);

// We gaan nu wat ingewikkelde berekeningen doen,
// om ervoor te zorgen dat het plaatje niet groter wordt dan 500 bij 500
// En dat de verhoudingen in verhouding blijven :P

$max = max($hoogtelinks, $hoogterechts, $breedteboven, $breedteonder);
$factor = floor($max/300);
if($factor >= 1)
{

  $hoogtelinks = floor($hoogtelinks/$factor);
  if($hoogtelinks == 0)
  {

    die("Verhoudingen zijn niet Oke!");
  }

  $hoogterechts = floor($hoogterechts/$factor);
  if($hoogterechts == 0)
  {

    die("Verhoudingen zijn niet Oke!");
  }

  $breedteboven = floor($breedteboven/$factor);
  if($breedteboven == 0)
  {

    die("Verhoudingen zijn niet Oke!");
  }

  $breedteonder = floor($breedteonder/$factor);
  if($breedteonder == 0)
  {

    die("Verhoudingen zijn niet Oke!");
  }
}

  
$p1x = ceil((350-$breedteboven)/2);
$p2x = ceil(($p1x+$breedteboven));
$p1y = ceil((350-$hoogtelinks));
$p2y = ceil((350-$hoogterechts));
$p3x = ceil((350-$breedteonder)/2);
$p3y = 345;
$p4x = floor(($p3x+$breedteonder));
$p4y = 345;

// Punten instellen
$values = array(
        $p1x,  $p1y,  // Point 1 (x, y)
        $p3x,  $p3y, // Point 2 (x, y)
        $p4x, $p4y,  // Point 3 (x, y)
           $p2x, $p2y  // Point 4 (x, y)
        );


// Achtergrond kleurtje
imagefilledrectangle($image, 0, 0, 350, 350, $bg);

// Trapeze achtig iets printen
imagefilledpolygon($image, $values, 4, $blue);

// Hupsakee, de browser verwacht wat
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
?>
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.