Ficheiro:Pi archi approx.svg
Fonte: testwiki
Saltar para a navegação
Saltar para a pesquisa
Dimensões desta antevisão em PNG do ficheiro SVG: 800 × 144 píxeis Outras resoluções: 320 × 58 píxeis | 640 × 115 píxeis | 1 024 × 184 píxeis | 1 280 × 230 píxeis | 2 560 × 461 píxeis | 1 000 × 180 píxeis.
Ficheiro original (ficheiro SVG, de 1 000 × 180 píxeis, tamanho: 6 kB)
Este ficheiro vem da wiki na wiki Wikimedia Commons e pode ser usado por outros projetos. A descrição na página original de descrição do ficheiro é mostrada abaixo.
Descrição do ficheiro
| DescriçãoPi archi approx.svg |
English: Approximation to Pi by Archimedes' method
Français : Approximation de Pi par la méthode d'Archimède
Polski: Metoda Archimedesa aproksymacji Pi
|
| Data | |
| Origem | Obra do próprio |
| Autor | Guillaume Jacquenot |
| Outras versões |
Obras derivadas deste ficheiro: |
| SVG desenvolvimento InfoField |
Licenciamento
Guillaume Jacquenot, titular dos direitos de autor desta obra, publica-a com as seguintes licenças:
| É concedida permissão para copiar, distribuir e/ou modificar este documento nos termos da Licença de Documentação Livre GNU, versão 1.2 ou qualquer versão posterior publicada pela Free Software Foundation; sem Secções Invariantes, sem textos de Capa e sem textos de Contra-Capa. É incluída uma cópia da licença na secção intitulada GNU Free Documentation License.http://www.gnu.org/copyleft/fdl.htmlGFDLGNU Free Documentation Licensetruetrue |
A utilização deste ficheiro é regulada nos termos da licença Creative Commons - Atribuição-CompartilhaIgual 3.0 Não Adaptada, 2.5 Genérica, 2.0 Genérica e 1.0 Genérica.
Atribuição:
- Pode:
- partilhar – copiar, distribuir e transmitir a obra
- recombinar – criar obras derivadas
- De acordo com as seguintes condições:
- atribuição – Tem de fazer a devida atribuição da autoria, fornecer uma hiperligação para a licença e indicar se foram feitas alterações. Pode fazê-lo de qualquer forma razoável, mas não de forma a sugerir que o licenciador o apoia ou subscreve o seu uso da obra.
- partilha nos termos da mesma licença – Se remisturar, transformar ou ampliar o conteúdo, tem de distribuir as suas contribuições com a mesma licença ou uma licença compatível com a original.
Pode escolher a licença que quiser.
Source code (C)
/* Compilation instructions */
/* gcc -Wall -ansi -pedantic -o Pi_archi_approx Pi_archi_approx.c */
/* This program generates an SVG image, showing Archimede's technique to */
/* approximate pi */
/* One argument can be provided, as the maximum number of approximations desired */
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define PI 3.14159265358979
int main(int argc, char **argv)
{
int i,j,n;
double id,coeff;
FILE *fpt;
double *x, *y;
double R = 40.0;
/* Angle values*/
double alpha, alpha_offset;
int fontsize = 10;
double strokewidth = 0.8;
if (argc == 2)
n = (int)atof(argv[1]);
else
{
n = 10;
}
if (n<3)
{
printf("\n");
fflush(stdout);
exit(1);
}
/* Opening result file*/
fpt = fopen("Pi_archi_approx.svg","w");
fprintf(fpt,"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n");
fprintf(fpt,"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd \">\n");
fprintf(fpt,"<svg\n");
fprintf(fpt," xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" \n");
fprintf(fpt," xmlns:svg=\"http://www.w3.org/2000/svg\" \n");
fprintf(fpt," xmlns=\"http://www.w3.org/2000/svg\" \n");
fprintf(fpt," width=\"%dpx\" \n",(int)(((n-2)*3+1)*R));
fprintf(fpt," height=\"%dpx\" \n",(int)(4.5*R));
fprintf(fpt," >\n");
for (i=3;i<=n;i++)
{
id = (double) i;
x = (double *)malloc(i*sizeof(double));
y = (double *)malloc(i*sizeof(double));
fprintf(fpt," <g>\n");
fprintf(fpt," <circle cx=\"%f\" cy=\"%f\" r=\"%f\" ",((id-2)*3-0.75)*R,2.5*R,R);
fprintf(fpt,"stroke=\"black\" stroke-width=\"%f\" fill=\"none\"/>\n",strokewidth);
fprintf(fpt," <polygon points=\"");
alpha_offset = -PI/2 + ((i%2)==0) * PI/id;
for (j=0;j<i;j++)
{
alpha = alpha_offset + 2*j*PI/id;
x[j] = cos(alpha);
y[j] = sin(alpha);
fprintf(fpt,"%f,%f ",R*x[j]+((id-2)*3-0.75)*R,R*(y[j]+2.5));
}
fprintf(fpt,"\" fill=\"none\" stroke=\"black\" stroke-width=\"%f\"/>\n",strokewidth);
coeff = 2.0/sqrt((x[0]+x[1])*(x[0]+x[1]) + (y[0]+y[1])*(y[0]+y[1]));
fprintf(fpt," <polygon points=\"");
for (j=0;j<i;j++)
{
fprintf(fpt,"%f,%f ",R*coeff*x[j]+((id-2)*3-0.75)*R,R*(coeff*y[j]+2.5));
}
fprintf(fpt,"\" fill=\"none\" stroke=\"black\" stroke-width=\"%f\"/>\n",strokewidth);
free(x);
free(y);
fprintf(fpt," <text x = \"%f\" y = \"%f\" text-anchor=\"middle\" fill = \"black\" font-size = \"%d\">\n",
((id-2)*3-0.75)*R,4*R,fontsize);
fprintf(fpt," n = %d\n",i);
fprintf(fpt," </text>\n");
fprintf(fpt," </g>\n");
}
fprintf(fpt,"</svg>\n");
fclose(fpt);
return (0);
}
Legendas
Adicione uma explicação de uma linha do que este ficheiro representa
Elementos retratados neste ficheiro
retrata
Um valor sem um elemento no repositório Wikidata
22 março 2009
5 779 byte
image/svg+xml
66ad8dd69b0dd1f62d0880c49da7fd831a009875
Histórico do ficheiro
Clique uma data e hora para ver o ficheiro tal como ele se encontrava nessa altura.
| Data e hora | Miniatura | Dimensões | Utilizador | Comentário | |
|---|---|---|---|---|---|
| atual | 13h21min de 22 de março de 2009 | 1 000 × 180 (6 kB) | wikimediacommons>Gjacquenot | {{Information |Description={{en|1=Archimedes' Pi aproximation}} {{fr|1=Approximation de pi par la méthode d'Archimède}} |Source=travail personnel (own work) |Author=Guillaume Jacquenot |Date=2009-03-22 |Permission= |other_versions=fi |
Utilização local do ficheiro
A seguinte página usa este ficheiro: