File:Pi archi approx.svg

מתוך Wikimedia Commons
קפיצה לניווט קפיצה לחיפוש

לקובץ המקורי(קובץ SVG, הגודל המקורי: 1,000 × 180 פיקסלים, גודל הקובץ: 6 ק"ב)

כיתובים

כיתובים

נא להוסיף משפט שמסביר מה הקובץ מייצג

תקציר

[עריכה]
תיאור
English: Approximation to Pi by Archimedes' method
Français : Approximation de Pi par la méthode d'Archimède
Polski: Metoda Archimedesa aproksymacji Pi
Español: Método de aproximación del número π de Arquímedes.
תאריך יצירה
מקור נוצר על־ידי מעלה היצירה
יוצר Guillaume Jacquenot
גרסאות אחרות

Derivative works of this file:  Pi archi approx inter.svg

Archimedes_pi.svg

רישיון

[עריכה]
אני, בעל זכויות היוצרים על היצירה הזאת, מפרסם אותה בזאת תחת הרישיונות הבאים:
GNU head מוענקת בכך הרשות להעתיק, להפיץ או לשנות את המסמך הזה, לפי תנאי הרישיון לשימוש חופשי במסמכים של גנו, גרסה 1.2 או כל גרסה מאוחרת יותר שתפורסם על־ידי המוסד לתוכנה חופשית; ללא פרקים קבועים, ללא טקסט עטיפה קדמית וללא טקסט עטיפה אחורית. עותק של הרישיון כלול בפרק שכותרתו הרישיון לשימוש חופשי במסמכים של גנו.
w:he:Creative Commons
ייחוס שיתוף זהה
הקובץ הזה מתפרסם לפי תנאי רישיונות קריאייטיב קומונז ייחוס-שיתוף זהה 3.0 לא מותאם, 2.5 כללי, 2.0 כללי ו־1.0 כללי.
הנכם רשאים:
  • לשתף – להעתיק, להפיץ ולהעביר את העבודה
  • לערבב בין עבודות – להתאים את העבודה
תחת התנאים הבאים:
  • ייחוס – יש לתת ייחוס הולם, לתת קישור לרישיון, ולציין אם נעשו שינויים. אפשר לעשות את זה בכל צורה סבירה, אבל לא בשום צורה שמשתמע ממנה שמעניק הרישיון תומך בך או בשימוש שלך.
  • שיתוף זהה – אם תיצרו רמיקס, תשנו, או תבנו על החומר, חובה עליכם להפיץ את התרומות שלך לפי תנאי רישיון זהה או תואם למקור.
הנכם מוזמנים לבחור את הרישיון הרצוי בעיניכם.
 
W3C-validity not checked.

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);
}

היסטוריית הקובץ

ניתן ללחוץ על תאריך/שעה כדי לראות את הקובץ כפי שנראה באותו זמן.

תאריך/שעהתמונה ממוזערתממדיםמשתמשהערה
נוכחית12:21, 22 במרץ 2009תמונה ממוזערת לגרסה מ־12:21, 22 במרץ 2009‪180 × 1,000‬ (6 ק"ב)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

הדף הבא משתמש בקובץ הזה:

שימוש גלובלי בקובץ

אתרי הוויקי השונים הבאים משתמשים בקובץ זה: