OpenLLM-France/wikimedia huggingface dataset:
# Programmation objet et géométrie/Objets Python sous Blender/Objets 3D en Python sous Blender

Pour Blender, les cubes, sphères, cônes etc. sont des objets. Des objets 3D, mais des objets.
Pour Python, tout est objet. Y compris les objets de Blender!
On peut donc utiliser l'un pour créer les autres.
Dans l'exemple ci-dessous, on va représenter une fenêtre de Viviani, et plus précisément l'intersection d'une sphère et d'un cylindre pleins.

# Les objets

Le fichier doit, comme on l'a vu, commencer par

## La sphère

En fait il y a deux sphères différentes, l'une avec des méridiens et des parallèles (donc à faces quadrilatérales), l'autre ressemblant à un icosaèdre avec éventuellement plus de 20 faces, mais triangulaires. La première sphère s'appelle UVsphere, la seconde Icosphere. C'est la seconde qu'on a choisi ici, avec 4 subdivisions appliquées à un icosaèdre et un rayon de 2.0:
Elle s'appelle me1 parce que c'est un mesh.

## Le cylindre

Le cylindre doit avoir un rayon moitié de celui de la sphère, soit 1.0 et on lui donne une hauteur de 2.0; en plus, pour qu'il soit suffisamment arrondi, on lui donne 64 sommets par base:

# Déplacement

Maintenant il est temps d'accéder à la scène, ce qu'on fait en invoquant la méthode GetCurrent de l'objet Scene.
Ensuite on place un cylindre de type me2 (créé ci-dessus) dans la scène. C'est une instanciation de l'objet me2.
Enfin on translate ce cylindre, simplement en modifiant son abscisse, qui devient 0.5:
LocY et LocZ sont les autres coordonnées de l'objet, et il existe aussi des propriétés angulaires des objets comme RotX etc. qui sont donnés en radians.

# La scène

Pour finir, il suffit de placer une sphère (objet me1) dans la même scène, et d'activer l'affichage de celle-ci dans Blender:
C'est tout! Le script dans son intégralité est rappelé ci-dessous:

## À l'origine

Une fois le rendu effectué, et en texturant les deux objets avec des couleurs transparentes, on obtient le rendu que voici:
Avec un peu d'imagination, on peut voir la courbe de Viviani. Mais le lissage de la figure a diminué un peu le rayon de la sphère et on ne voit plus le point double de la courbe. Alors on peut utiliser Blender pour créer un nouvel objet, l'intersection des deux objets précédents:

## Intersection

On sélectionne les deux objets d'un clic droit, puis on appuie sur la touche W du clavier, ce qui permet de sélectionner l'intersection (opération booléenne). Mais on ne voit rien si on n'enlève pas la sphère et le cylindre. Une fois que c'est fait, il reste cet objet:
# Programmation objet et géométrie/Objets en Python sous Gimp

Gimp est un acronyme signifiant Graphic Image Manipulation Program. C'est donc un logiciel spécialisé dans le traitement d'images, et les images (ainsi que les filtres) sont idéalement des objets. Par ailleurs, les figures géométriques sont des images. Le paradigme de la programmation objet est donc tout-à-fait applicable à de la géométrie faite sous Gimp. Ceci n'est sans doute pas étranger au fait qu'en plus de sa console Script-Fu (en langage Scheme), le Gimp s'est vu doté d'une console Python (langage), puisque le langage Python est un langage objet.
Une différence importante entre Gimp et la géométrie repérée est que l'axe des ordonnées est dirigé vers le bas (héritage des télétypes où on repérait les caractères par leur numéro de ligne).

## Gimp et Python

Pour bénéficier de l'interface Python de Gimp sous Windows, il faut d'abord installer Python, ainsi que des extensions répondant au nom de pyGtk (interface Gtk pour Python) qui permet en quelque sorte de relier Gimp et Python. L'installation doit se faire dans cet ordre:
* Python pour Windows
* PyGtk
* enfin seulement, le Gimp.
En effet lorsqu'on l'installe, Gimp cherche tout seul ses extensions, et l'interface Python ne sera reconnue par lui que si elle est présente!
Par contre sous les systèmes à base d'UNIX, l'extension Python est activée par défaut sous Gimp. Il n'y a donc pas d'installation supplémentaire à faire!

### Structure d'un script

Un script pour Gimp doit commencer par
et doit être exécutable.
Et pour l'utiliser comme un filtre Gimp, on doit l'enregistrer dans la base de donnée des procédures. Ce qui se fait en terminant le script par quelque chose comme ceci:
Les deux premières lignes donnent la description courte du script et sa description longue, la troisième donne un message qui s'affiche pendant l'exécution du script. Ensuite viennent le nom de l'auteur du script et la licence sous laquelle elle est placée (par exemple la Licence GPL), puis l'année de création du script. Ensuite c'est le texte qui apparaît dans la bulle d'aide, le type d'image (le caractère "étoile" veut dire "tout type d'image"). Entre crochets, on donne la liste des variables entrées dans le script (ici, l'image source qui est supposée vide). Enfin viennent le nom de la fonction Python qui sera appelée lorsqu'on sélectionne le script, et enfin l'emplacement du script dans le menu des outils de Gimp (ici dans le sous-menu "rendus" du menu des filtres).

### Tracé de polygones en Python sous Gimp
## Références

* ↑ téléchargeable ici: http:www.pygtk.org
* téléchargeable ici: http://www.pygtk.org</references>
# Programmation objet et géométrie/Les cercles de canvas

En réalité, canvas n'a pas de cercles! Cependant il a des arcs de cercle, et pour tracer un cercle, il suffit de tracer un arc allant de 0 radians à 2π radians. La méthode arc de l'objet canvas accepte 6 arguments
* L'abscisse du centre
* L'ordonnée du centre
* Le rayon
* L'angle de départ (0 pour un cercle complet)
* L'angle d'arrivée (2*Math.PI pour un cercle complet)
* Un booléen pour choisir entre les arcs rentrant et saillant (true pour le sens trigonométrique, false pour le sens des aiguilles d'une montre).
Les arcs de cercle sont utiles pour faire des diagrammes circulaires ou semi-circulaires en statistiques, mais aussi pour la géométrie hyperbolique. Mais dans cet article on va plutôt réinvestir ce qui a été fait avec l'arbre de Stern-Brocot dans le chapitre précédent. En effet, la version tassée de l'arbre (avec division par le double du carré du dénominateur) a une propriété unique: Les cercles centrés sur les fractions et tangents à l'axe des abscisses, sont également tangents entre eux: L'étude de cas portera donc sur les cercles de Ford, une des plus simples parmi les fractales basées sur des cercles (en réalité ce sont des horocycles mais on ne va pas chipoter).

# Cercles de Ford
## Fractions

Les fonctions sur les fractions (fille et fils) sont les mêmes que dans le chapitre précédent. Et la méthode générale aussi: On va juste dessiner récursivement des cercles au lieu de segments.

## Cercles et disques

Le dessin d'un cercle devient effectif avec stroke (et il peut être intéressant de le précéder d'un moveTo pour éviter les segments parasites). Mais pour mieux voir les cercles, on va utiliser la méthode fill du canvas, qui rajoute les disques (donc remplit les cercles).

### Couleurs

On remplit les disques de couleur orange et on trace les cercles en rouge foncé avec

### Cercles

Pour mieux voir le cercle (le bord), il vaut mieux le placer par-dessus le disque (l'intérieur), ce qu'on fait en traçant le cercle après le disque:
On remarque que chaque cercle est tracé de -π/2 à 3π/2 (au lieu des classiques 0 et 2π); c'est parce que le point de départ du tracé de l'arc de cercle est plus facile à calculer ainsi.
Comme précédemment, il suffit d'appeler la fonction cercles([1,2]) suivie d'un stroke pour voir apparaître les cercles de Ford:

### Tracé
# Arcs de cercle
## Pavages du plan hyperbolique

Les droites et segments hyperboliques sont représentés dans le disque de Poincaré par des arcs de cercle. La balise canvas est donc particulièrement adaptée à leur tracé. Par exemple des pavages hyperboliques...

## Spirale de Fibonacci

Avec des arcs de cercle, on peut faire des dessins assez réguliers comme des rosaces ou la spirale de Fibonacci. Celle-ci fera son apparition dans le prochain chapitre.
# Programmation objet et géométrie/Les rectangles de canvas

C'est plus facile de tracer un rectangle qu'un segment avec canvas: Pas besoin de beginPath, de moveTo ni de stroke pour avoir le rectangle complet. En fait il y a deux méthodes permettant de dessiner un rectangle: strokeRect qui dessine juste le cadre du rectangle, et fillRect qui dessine un rectangle rempli. Les deux méthodes acceptent 4 arguments chacune:
* L'abscisse du coin supérieur gauche
* L'ordonnée du coin supérieur gauche
* La largeur du rectangle
* La hauteur du rectangle
Les rectangles peuvent servir à restreindre le tracé (par intersection avec le rectangle); ils peuvent être dessinés en semi-transparence; on peut leur affecter un dégradé. Ils peuvent servir à effacer la figure (en la recouvrant d'un rectangle blanc) ou à tracer des histogrammes. Dans ce chapitre, on va dessiner des rectangles de Fibonacci, qui sont en fait des assemblages de carrés (comme ça on donne le même paramètre à la largeur et la hauteur).

# Rectangles de Fibonacci

Pour que les carrés dont les côtés sont des nombres de Fibonacci s'assemblent bien, il faut les coller tantôt à droite, tantôt en haut, tantôt à gauche et tantôt en bas de l'assemblage. Le choix se fera selon la valeur de n (l'indice de la boucle) modulo 4, et c'est une bonne occasion d'utiliser le fameux switch..case de JavaScript:

## Comment spiraler en JavaScript

Pour garder une trace de la valeur de n modulo 4, on peut également changer de couleur de remplissage selon sa valeur (a et b sont les nombres de Fibonacci qu'on est en train de calculer):
À chaque fois, l'instruction break sert à éviter d'effectuer les autres déplacements après celui dont on a besoin.

## Dessin des rectangles

Le script complet n'est pas beaucoup plus long: Il s'agit de rajouter les deux premiers carrés autour desquels la construction va se faire, et les deux instructions de dessin des rectangles (fillRect pour le rectangle de couleur variable, et strokeRect pour le bord):
Voilà le résultat avec 12 carrés:

## Variante avec des arcs de cercles

On peut aussi, au lieu des carrés, mettre des quarts de cercles qui se joignent:
Ça donne cette spirale:

# Pixels vus comme rectangles

Si la longueur et la largeur d'un rectangle font 1 pixel chacun, on peut remplir ce pixel seul avec un rectangle de dimensions 1 et 1.

## Ensemble de Mandelbrot

Voici un code informatique pour dessiner l'ensemble de Mandelbrot en Javascript dans le canvas, cette méthode va dessiner la fractale en entier :
# Enseignement de l'allemand/Le parfait

Perfekt

## Utilisation

On emploie le parfait pour un événement terminé ainsi que dans la conversation orale généralement pour énoncer le passé, c'est-à-dire qu'il remplace très souvent le prétérit dans la conversation orale. Le parfait peut-être un bilan. On le traduit en français par le passé composé.

## Formation

Le parfait se forme à l'aide de l'auxiliaire haben ou sein conjugué au présent et du participe passé du verbe considéré.
Voir la conjugaison des auxiliaires au présent

### Phrase déclarative

* SUJET + AUXILIAIRE SEIN ou HABEN + COMPLEMENT + PARTICIPE PASSE

### Phrase interrogative

* AUXILIAIRE SEIN ou HABEN + SUJET + COMPLÉMENT + PARTICIPE PASSÉ

## Choix de l'auxiliaire

On emploie l'auxiliaire sein avec :
    - les verbes sein, bleiben
    - les verbes intransitifs qui expriment un changement d'état, de lieu ou un mouvement
Exemples :
* Ich bin daheim gewesen. J'ai été à la maison. mais aussi : J'étais à la maison.
* Er ist Vater geworden. Il est devenu père.
* Sie ist jung geblieben. Elle est restée jeune.
* Sie sind einfach aufgestanden. Ils se sont simplement levé(e)s.
* Seid ihr schon angekommen? Êtes-vous déjà arrivé(e)s ?
* Wir sind verschwunden. Nous avons disparu.
* Wir sind nach Hause gegangen. Nous sommes rentré(e)s à la maison.
On emploie l'auxiliaire haben avec :
* les verbes de position (bleiben excepté)
* les verbes réfléchis
* les verbes transitifs
Exemples :
* Ich habe gesessen. J'ai été assis(e). mais aussi: J'étais assis(e).
* Ich habe mich zusammengerissen. Je me suis ressaisi(e).
* Das Bild hat an der Wand gehangen. L'image [le tableau] a été accrochée au mur.

## Conjugaison des auxiliaires

| Conjugaison du verbe sein (être) Seinêtre ichbin gewesenj'ai été dubist gewesentu as été er/sie/esist gewesenil/elle/on a été wirsind gewesennous avons été ihrseid gewesenvous avez été Sie, siesind gewesenils/elles ont été | Conjugaison du verbe haben (avoir) Habenavoir ichhabe gehabtj'ai eu duhast gehabttu as eu er/sie/eshat gehabtil/elle/on a eu wirhaben gehabtnous avons eu ihrhabt gehabtvous avez eu Sie, siehaben gehabesils/elles ont eu |

### Conjugaison du verbe werden (devenir)

| Werden | Werden | devenir |
| ich | bin geworden | je suis devenu(e) |
| du | bist geworden | tu es devenu(e) |
| er/sie/es | ist geworden | il/elle/on est devenu(e) |
| wir | sind geworden | nous sommes devenu(e)s |
| ihr | seid geworden | vous êtes devenu(e)s |
| Sie, sie | sind geworden | ils/elles sont devenu(e)s |
Retour au sommaire.
# Enseignement de l'allemand/Le plus-que-parfait

Plusquamperfekt

## Utilisation

On emploie le plus-que-parfait pour situer un évènement du passé par rapport à un autre évènement du passé. En français, il s'agit également du plus-que-parfait.

## Formation

Pour former le plus-que-parfait, on utilise l'auxiliaire sein ou haben au prétérit et le participe passé du verbe considéré.
Retour au sommaire
# Enseignement de l'allemand/L'impératif

Imperativ

## Utilisation

Le mode impératif concerne quatre personnes:
- la deuxième personne du singulier - la première personne du pluriel (injonction) - la deuxième personne du pluriel - la forme de politesse

## Formation
### Deuxième personne du singulier

Pour former l'impératif de la deuxième personne du singulier, on utilise le radical du verbe considéré. Si le verbe considéré est faible, il se termine par un e. Les verbes geben, helfen, werfen, nehmen prennent seulement leur radical de la deuxième personne singulier. La lettre e se transforme en i pour les verbes forts. On met un e intercalaire pour les verbes dont le radical fini par d, t, chn... Par exemple : antworte (2ème personne du singulier), antwortet (2ème personne du pluriel), antworten Sie (politesse).
Exemple : Geh fort!
Sei du selbst! Gib das her! Nimm dir ein Stück! Wirf die Vase nicht um! Hilf mir! Setz dich hin! Entferne das! Liebe mich!
Pour exprimer une proposition avec une injonction, on utilise Lass uns avec l'infinitif. Exemple : Lass uns etwas spielen! Lass uns uns setzen! Lass uns ihm ein Geschenk machen!

### Première personne du pluriel

Pour former l'impératif de la prémiere personne du pluriel, on utilise
* La forme conjugué au subjonctif de la prémiere personne du pluriel (radical + en) avec le pronom wir
* Lasst uns (si l'on se tutoie) ou Lassen Sie uns (si l'on se vouvoie) avec l'infinitif pour exprimer une proposition.
Exemple : Gehen wir! Setzen wir uns! Seien wir wir selbst! Lasst uns spielen! Lassen Sie uns darüber reden!

### Deuxième personne du pluriel

Pour former l'impératif de la deuxième personne du pluriel, on utilise la forme conjugué à la deuxième personne du pluriel (radical + t). Exemple : Geht nach Hause! Lasst uns in Ruhe! Setzt euch!

### la forme de politesse

Pour former l'impératif de politesse, on utilise la forme conjugué au subjonctif de la troisième personne du pluriel (radical + en) avec le pronom de politesse Sie. Pour y mettre un accent, c'est souvent que l'on imbrique aussi bitte. Exemple : Gehen Sie (bitte) nach Hause! Setzen Sie sich (bitte)! Geben Sie uns (bitte) eine Chance! Seien Sie (bitte) pünktlich!
Retour au sommaire
# Enseignement de l'allemand/Exercices Modaux
## Conjugaison
### Conjugaison

Conjuguez les modaux suivants aux temps proposés :
* können / 1ère personne du singulier / présent
* können / 3ème personne du singulier / prétérit
* dürfen / 2ème personne du singulier / présent
* dürfen / 2ème personne du pluriel / subjonctif II
* müssen / 2ème personne du pluriel / présent
* müssen / 1ère personne du singulier / subjonctif I
* sollen / 1ère personne du pluriel / prétérit
* sollen / 2ème personne du singulier / subjonctif I
* mögen / 1ère personne du singulier / présent
* mögen / 1ère personne du pluriel / prétérit
* wollen / 3ème personne du pluriel? / présent
* wollen / 2ème personne du pluriel / subjonctif II

### Exercice 2

Complétez avec le verbe de modalité approprié :
* Ich ________ ein Bier trinken. (aimer )
* Du ________ Deutsch lernen. (vouloir)
* Er ___nicht arbeiten. (aimer)
* Alle Menschen _________ sterben. (devoir)
* Wir ________ ihm helfen. (devoir)
* Jetzt _____ich spielen. (avoir l'autorisation)

## Solutions
#### Conjugaison

* ich kann
* er, sie, es konnte
* du darfst
* ihr dürftet
* ihr müsst
* ich müsse
* wir sollten
* du sollest
* ich mag
* wir mochten
* sie, Sie wollen
* ihr wolltet

#### Exercice 2

* möchte
* willst
* mag
* müssen
* sollen
* darf
Retour Enseignement de l'allemand
# Enseignement de l'allemand/La prononciation des voyelles
## Les voyelles seules

| orthographe allemande | prononciation en français | phonétiques | exemple allemand | exemple français |
| a | a | | Banane (banane) | banane |
| e | é | | neben (à côté 1er "e") | prononcé |
| e | | ǝ | neben (à côté 2ème "e") | |
| i | i | | in (dans) | occupation |
| o | o | | Oper (opéra) | opéra |
| u | ou | | unten (en bas) | ouvrir |

## Les voyelles infléchies

| orthographe allemande | prononciation en français | exemple allemand | exemple français |
| ä (ae) | è | hängen (pendre) | père |
| ö (oe) | e | Möbel (meuble) | eux |
| ü (ue) | u | über (sur) | tendu |

### Tuyau

    Si on n'a pas la possibilité d'écrire un "ä", "ö" ou "ü" il est mieux d'écrire "ae", "oe" ou "ue" que "a", "o" ou "u". Pour faire les infléchies sur le clavier français il faut utiliser la touche morte du tréma (¨). Pressez la touche MAJ et ^ ensemble, après pressez la lettre que vous voulez infléchir (a, o ou u).

## Les diphtongues

| orthographe allemande | prononciation en français | exemple allemand | exemple français |
| ei | (aille) | Ei (œuf) | Versailles |
| äu | œi | Häuser (maisons) | œil |
| eu | œi | heute (aujourd'hui) | œil |
# Enseignement de l'allemand/Le futur

Futur I

## Utilisation

On emploie le futur pour un évènement qui se passera dans l'avenir.

## Conjugaison des auxiliaires

| Conjugaison du verbe sein (être) Seinêtre ichwerde seinje serai duwirst seintu seras er/sie/eswird seinil/elle/on sera wirwerden seinnous serons ihrwerdet seinvous serez Sie, siewerden seinils/elles seront | Conjugaison du verbe haben (avoir) Habenavoir ichwerde habenj'aurai duwirst habentu auras er/sie/eswird habenil/elle/on aura wirwerden habennous aurons ihrwerdet habenvous aurez Sie, siewerden habenils/elles auront |

### Conjugaison du verbe werden (devenir)

| Sein | Sein | être |
| ich | werde werden | je deviendrai |
| du | wirst werden | tu deviendras |
| er/sie/es | wird werden | il/elle/on deviendra |
| wir | werden werden | nous deviendrons |
| ihr | werdet werden | vous deviendrez |
| Sie, sie | werden werden | ils/elles deviendront |
Retour au sommaire
# Enseignement de l'allemand/Le futur antérieur

Futur II

## Utilisation

On emploie le futur antérieur pour un évènement qui sera terminé dans l'avenir.

## Formation

Pour former le futur antérieur on met
* Le pronom personnel + la forme correspondante de werden + participe passé du verbe considéré + infinitif de l'auxiliaire sein où haben

## Conjugaison des auxiliaires

| Conjugaison du verbe sein (être) Seinêtre ichwerde gewesen seinj'aurai été duwirst gewesen seintu auras été er/sie/eswird gewesen seinil/elle/on aura été wirwerden gewesen seinnous aurons été ihrwerdet gewesen seinvous aurez été Sie, siewerden gewesen seinils/elles auront été | Conjugaison du verbe haben (avoir) Habenavoir ichwerde gehabt habenj'aurai eu duwirst gehabt habentu auras eu er/sie/eswird gehabt habenil/elle/on aura eu wirwerden gehabt habennous aurons eu ihrwerdet gehabt habenvous aurez eu Sie, siewerden gehabt habenils/elles auront eu |

### Conjugaison du verbe werden (devenir)

| Sein | Sein | être |
| ich | werde geworden sein | je serai devenu,e |
| du | wirst geworden sein | tu seras devenu,e |
| er/sie/es | wird geworden sein | il/elle/on sera devenu,e |
| wir | werden geworden sein | nous serons devenu(e)s |
| ihr | werdet geworden sein | vous serez devenu(e)s |
| Sie, sie | werden geworden sein | ils/elles seront devenu(e)s |
Retour au sommaire
# Enseignement de l'allemand/Können et dürfen
## Können
### Conjugaison

| présent | présent | prétérit | prétérit | subjonctif présent | subjonctif présent | subjonctif prétérit | subjonctif prétérit |
| ich kann | wir können | ich konnte | wir konnten | ich könne | wir können | ich könnte | wir könnten |
| du kannst | ihr könnt | du konntest | ihr konntet | du könnest | ihr könnet | du könntest | ihr könntet |
| er, sie, es kann | sie, Sie können | er, sie, es konnte | sie, Sie konnten | er, sie, es könne | sie, Sie können | er, sie, es könnte | sie, Sie könnten |

### Emploi

* La capacité physique ou intellectuelle, on le traduit en français par pouvoir, savoir, être capable de .Exemple : Er kann Deutsch sprechen. Il sait parler l'allemand. Sie kann schwimmen. Elle sait nager.
können accompagne un infinitif qui peut être sous-entendu : Ich kann Spanisch (sous entendu sprechen, verstehen)
* L'autorisation, après une demande ou lors d'une réponse à une demande. Pour une demande très polie, on peut utiliser le subjonctif II présent. Exemple :
* La possibilité , on le traduit par il est possible que. Exemple :

## Dürfen
### Conjugaison

| présent | présent | prétérit | prétérit | subjonctif présent | subjonctif présent | subjonctif prétérit | subjonctif prétérit |
| ich darf | wir dürfen | ich durfte | wir durften | ich dürfe | wir dürfen | ich dürfte | wir dürften |
| du darfst | ihr dürft | du durftest | ihr durftet | du dürfest | ihr dürfet | du dürftest | ihr dürftet |
| er, sie, es darf | sie, Sie dürfen | er, sie, es durfte | sie, Sie durften | er, sie, es dürfe | sie, Sie dürfen | er, sie, es dürfte | sie, Sie dürften |

### Emploi

* La permission, on le traduit par avoir le droit de. Exemple : Darf ich ins Kino gehen ? Est-ce que j'ai le droit d'aller au cinéma ?
* L'autorisation Exemple : Darf ich das Fenster zumachen? Puis je fermer la fenêtre?
* L'interdiction absolue Exemple : Du darfst nicht kommen. "Tu n'as pas le droit de venir"
Retour Enseignement de l'allemand