Dosiero:Polygon spiral.png

El Vikipedio

Polygon_spiral.png (18KB, MIME type: image/png)

Wikimedia Commons Logo Tiu dosiero elĉerpiĝas de la Vikimedia Komunejo, kolekto de libere uzeblaj bildoj.
Vidu ĝian paĝon ĉe la Komunejo por permesinformo kaj historio de redaktado.

La bildo estas kopiita de wikipedia:en. La originala priskribo estas:

This graphic of an approximate logarithmic spiral made up from polygonal subunits was created using the perl interface to the ImageMagick image manipulation software:

#!/usr/bin/perl

use Image::Magick; #the perl interface to the ImageMagic software
use Math::Trig;

# The points of the polygon. Arbitrary.
($x0,$y0) = (0,0);
($x1,$y1) = (10,0);
($x2,$y2) = (20,5);
($x3,$y3) = (5,15);

# length of lower side divided by length of upper side:
$factor = sqrt((($x2-$x3)**2 + ($y2-$y3)**2) / (($x1-$x0)**2 + ($y1-$y0)**2));

# angle between upper side and lower side, in radians:
$angle = atan(($y2-$y3)/($x2-$x3)) - atan(($y1-$y0)/($x1-$x0));

# Create an empty white image:
$image=Image::Magick->new(size=>'400x350');
$image->Read('xc:white');

$polygon_points = "$x0,$y0 $x1,$y1 $x2,$y2 $x3,$y3 $x0,$y0";

# Create two sample polygons 
$image->Draw(primitive=>'polygon', points=>$polygon_points, stroke=>red, translate=>"30,30");
$image->Draw(primitive=>'polygon', points=>$polygon_points, scale=>"$factor,$factor", stroke=>red, translate=>"70,30");

# Now place 5 of them side by side, appropriately stretched and turned
$stretch = 1; $turn = 0; $posX = 120; $posY = 250;
for (1..5) {
  $image->Draw(primitive=>'polygon', points=>$polygon_points, scale=>"$stretch,$stretch", stroke=>red, rotate=>$turn * 180/pi, translate=>"$posX,$posY");
  $posX = $posX + $stretch * ( cos($turn) * ($x3-$x0) - sin($turn) * ($y3-$y0));
  $posY = $posY + $stretch * ( sin($turn) * ($x3-$x0) + cos($turn) * ($y3-$y0));
  $turn = $turn + $angle;
  $stretch = $stretch * $factor;
}

# Add some text
$image->Set(font=>'-*-helvetica-medium-r-*-*-12-*-*-*-*-*-iso8859-*'); #this only works on the X window system
$image->Annotate(text=>"polygonal subunits", x=>30, y=>75, fill=>black);
$image->Annotate(text=>"approximate logarithmic spiral", x=>120, y=>310, fill=>black);
  
# Write out the image in the png format
$image->Write('polygon_spiral.png');
GNU head Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".

العربية | Deutsch | English | Español | Français | Italiano | 日本語 | 한국어 | Nederlands | Polski | Português | Slovenčina | Svenska | עברית +/-


date/time username edit summary
10:02, 10 December 2004 en:User:Solitude (assuming by user, {{GFDL}})
12:17, 9 August 2002 en:User:Brion VIBBER (<nowiki>...</nowiki>)
21:30, 8 August 2002 en:User:Josh Grosse (Moving from image credits)

[edit] Historio de la dosiero

Legend: (cur) = this is the current file, (del) = delete this old version, (rev) = revert to this old version.

Click on date to download the file or see the image uploaded on that date.

  • (del) (cur) 11:49, 20 July 2002 . . . . 400x350 (17711 bytes)

La jenaj paĝoj ligas al ĉi tiu dosiero: