[Three] Invert et project

Tout ce qui concerne l'utilisation ou l'installation d'Asymptote.

Modérateur: gdm_asy

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

[Three] Invert et project

Messagepar maurice » Vendredi 31 Décembre 2010, 20:54

Bonsoir,
je suis confronté à un problème avec invert. Le code :

Code: Tout sélectionner
import three;
currentprojection=orthographic(14,-8.5,2.5);
size(6cm);

triple A=(0.5,0,1),
       B=(0,2,1);
pair pC=(1,1);
path3 pl=plane(A,B,O);
triple n=normal(pl);
transform3 pr=planeproject(Z,O,n);

triple pA=pr*A,
       pB=pr*B,
       C=invert(pC,n,A);

draw(surface(pl),opacity(0.8),yellow+linewidth(1pt));
draw(surface(pA--pr*C--pB--O--cycle),orange);
draw(A--pA,dashed,Arrow3);
draw(B--pB,dashed,Arrow3);
draw(pr*C--C,dashed,Arrow3);

dot("$A$",A,W);
dot("$B$",B,NE);
dot("$(1;1)$",pr*C,S);
dot("$C$",C,N);
dot("$p(A)$",pA,S);
dot("$p(B)$",pB,S);


ne pose pas de problème mais je n'arrive pas à utiliser deux projections distinctes. Ici, le point (1,1) est bien envoyé en C suivant la projection définie (enfin je crois !).
Mais si je définie une deuxième projection par exemple
Code: Tout sélectionner
transform3 pr2=planeproject(Z,O,Z);


je n'arrive pas à utiliser invert avec cette seconde projection...

Peut n'ai-je rien compris mais si quelqu'un a une idée ?...

Merci

Maurice

PS : si quelqu'un a des complément d'information sur project. La doc dit :
A triple or path3 can be projected to a pair or path, with project(triple, projection
P=currentprojection) or project(path3, projection P=currentprojection).

Je suis aussi preneur.

PS2 : le code entre balises ne passe pas alors que ça compile pourtant bien à la maison.
Asymptote :
----> Démarrage rapide : http://cgmaths.fr/Atelier/Asymptote/Asymptote.html
----> Documentation 3D : http://www.mathco.tuxfamily.org et si ça ne marche pas, essayez la version pdf
maurice
Méga-utilisateur
 
Messages: 399
Inscription: Jeudi 25 Mars 2010, 13:49
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: [Three] Invert et project

Messagepar GMaths » Samedi 01 Janvier 2011, 01:33

Es-tu sûr d'avoir compris invert ?


8cd77d20bf6ecc3b7852bee032b4213a.png

Code: Tout sélectionner
settings.render=0;
import graph3;
currentprojection=orthographic((5,2,3),up=Y+3*Z);
size(5cm);

triple pN=invert((0,1),Z,O),
pE=invert((1,0),Z,O),
pW=invert((-1,0),Z,O),
pS=invert((0,-1),Z,O);

limits((0,0,0),(1,1,1));
xaxis3("$x$",Arrow3());
yaxis3(Label("$y$",Z),Arrow3());
zaxis3(Label("$z$"),Arrow3());

dot("N",pN,E);
dot("E",pE,S);
dot("S",pS,W);
dot("W",pW,N);

draw(pN--pS^^pE--pW,dashed);


Les points N, E, S, W sont des points du plan (xOy) de l'espace (de normale (Oz)) tels que dans le plan de projection (écran) leurs coordonnées sont respectivement (0,1), (1,0), (0,-1), (-1,0).


Code: Tout sélectionner
write(pN);
write(pE);
write(pS);
write(pW);

donne :

Code: Tout sélectionner
(-1.91519024327968,-0.383038048655935,0)
(0.331397208533973,1.13917790433553,0)
(1.91519024327968,0.383038048655936,0)
(-0.331397208533973,-1.13917790433553,0)
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: [Three] Invert et project

Messagepar GMaths » Samedi 01 Janvier 2011, 11:09

Peut-être que pour l'explication d'invert dans ta doc, ceci sera utile :

04606b6b30732bf39a1aacdce7a21abf.png

Code: Tout sélectionner
settings.render=0;
import geometry;
import graph3;
currentprojection=orthographic((5,2,3),up=Y+3*Z);

size(6cm);

triple pN=invert((0,1),Z,O),
pE=invert((1,0),Z,O),
pW=invert((-1,0),Z,O),
pS=invert((0,-1),Z,O);

limits((-2,-1.5,-1.5),(2,1.5,1.5));
xaxis3(gray);
yaxis3(gray);
zaxis3(gray,zmin=-1.5,zmax=1.5);
limits((0,0,0),(1,1,1));
xaxis3("$x$",Arrow3(),above=true);
yaxis3(Label("$y$",Z),Arrow3(),above=true);
zaxis3(Label("$z$"),zmin=0,zmax=1,Arrow3(),above=true);

dot("N",pN,N);
dot("E",pE,E);
dot("S",pS,S);
dot("W",pW,W);
draw(pN--pS^^pE--pW,dashed);

void montrecoord(triple P, pen stylo){
draw((P.x,0,0)--P--(0,P.y,0),stylo);
}
montrecoord(pN,red+dashed);
montrecoord(pE,blue+dashed);
montrecoord(pS,green+dashed);
montrecoord(pW,brown+dashed);
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: [Three] Invert et project

Messagepar GMaths » Samedi 01 Janvier 2011, 11:16

J'ai oublié de commenter ceci :

maurice a écrit:si quelqu'un a des complément d'information sur project
...
Je suis aussi preneur.


En ayant compris invert, tu devrais avoir maintenant mieux compris ce que la doc dit pour project.

Devine ce que va donner ceci dans mon exemple précédent. ;-)

Code: Tout sélectionner
write(project(pN));
write(project(pE));
write(project(pS));
write(project(pW));
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: [Three] Invert et project

Messagepar maurice » Samedi 01 Janvier 2011, 16:36

Bonjour, désolé pour la réponse tardive mais coupure internet depuis ce matin. Ca vient de revenir.

maurice a écrit:Peut n'ai-je rien compris mais si quelqu'un a une idée ?...

GMaths a écrit:Es-tu sûr d'avoir compris invert ?


On est bien d'accord. Merci pour tes exemples, je vais potasser ça tout à l'heure (du coup je suis parti sur autre chose).
je te tiens au courant en cas de problèmes.

Maurice
Asymptote :
----> Démarrage rapide : http://cgmaths.fr/Atelier/Asymptote/Asymptote.html
----> Documentation 3D : http://www.mathco.tuxfamily.org et si ça ne marche pas, essayez la version pdf
maurice
Méga-utilisateur
 
Messages: 399
Inscription: Jeudi 25 Mars 2010, 13:49
Statut actuel: Actif et salarié | Enseignant

Re: [Three] Invert et project

Messagepar maurice » Mardi 04 Janvier 2011, 21:12

Bonsoir, je reviens à la charge.
Je crois que j'ai compris les choses à l'envers. Le code suivant donne :

Code: Tout sélectionner
import graph3;
currentprojection=orthographic(21,-7.5,2.5);
size(6cm);

pair pA=(2.5,0.5);
pair pB=(2,2.5);
pair pC=(1,1);

triple p1=(0.5,0,1),
       p2=(0,2,1);
path3 pl=plane(p1,p2,O);
triple n=normal(pl);
transform3 pr=planeproject(Z,O,n);

transform3 pr2=planeproject(Z,O,Z);

triple A=invert(pA,n,p1),
       B=invert(pB,n,p1),
       C=invert(pC,n,p1);

draw(surface(A--B--C--cycle),
   opacity(0.8),yellow+linewidth(1pt));
draw(pr*A--A,dashed,Arrow3);
draw(pr*B--B,dashed,Arrow3);
draw(pr*C--C,dashed,Arrow3);
dot("$A$",A,N);
dot("$B$",B,N);
dot("$C$",C,N);

draw(pr*A--pr*B--pr*C--cycle,red);

triple A2=invert(pA,Z,(0,0,2)),
       B2=invert(pB,Z,(0,0,2)),
       C2=invert(pC,Z,(0,0,2));

draw(surface(A2--B2--C2--cycle),
   opacity(0.8),yellow+linewidth(1pt));
draw(pr2*A2--A2,dashed,Arrow3);
draw(pr2*B2--B2,dashed,Arrow3);
draw(pr2*C2--C2,dashed,Arrow3);
dot("$A_2$",A2,N);
dot("$B_2$",B2,N);
dot("$C_2$",C2,N);

draw(pr2*A2--pr2*B2--pr2*C2--cycle,red);


J'avais l'intuition (parfois trompeuse) que les projections allait coïncider.

It is occasionally useful to be able to invert a projection, sending a pair z onto the plane
perpendicular to normal and passing through point :
triple invert(pair z, triple normal, triple point,
projection P=currentprojection);


dit la doc officielle.
Où est l'erreur ?
Je ne vois pas de contradiction avec les exemples de Gaétan, on ne peut pas changer de projection ?
et dans project :

A triple or path3 can be projected to a pair or path, with project(triple, projection
P=currentprojection) or project(path3, projection P=currentprojection).


redit la doc officielle et moi je m'interroge !...

est-ce vraiment une projection ? Peut-on définir la direction ? ...

Merci
Maurice

PS : Le code ne passe pas dans les balises asy ; il compile pourtant très bien.

edit : j'ai écrit des bétises ... en allant un peu trop vite : angle de vue trompeur...
Asymptote :
----> Démarrage rapide : http://cgmaths.fr/Atelier/Asymptote/Asymptote.html
----> Documentation 3D : http://www.mathco.tuxfamily.org et si ça ne marche pas, essayez la version pdf
maurice
Méga-utilisateur
 
Messages: 399
Inscription: Jeudi 25 Mars 2010, 13:49
Statut actuel: Actif et salarié | Enseignant

Re: [Three] Invert et project

Messagepar maurice » Mardi 04 Janvier 2011, 22:32

Bonsoir,

Autant pour moi (ou au temps pour moi comme disent certains), erreur dans les définitions des projections :

Code: Tout sélectionner
import graph3;
currentprojection=orthographic(
camera=(20.4248637375475,-9.74838296644181,1.02595308127841),
up=(-0.000687356698822018,0.00128609021589221,0.025904186472395),
target=(0,1.77635683940025e-15,-4.44089209850063e-16),
zoom=1);
size(6cm);

pair pA=(2.5,0.5);
pair pB=(2,2.5);
pair pC=(1,1);

triple p1=(0.5,0,1),
       p2=(0,2,1);
path3 pl=plane(p1,p2,O);
triple n=normal(pl);
transform3 pr=planeproject(n,O);
transform3 pr2=planeproject(Z,O);

triple A=invert(pA,n,p1),
       B=invert(pB,n,p1),
       C=invert(pC,n,p1);

draw(surface(A--B--C--cycle),
   opacity(0.8),yellow+linewidth(1pt));
draw(pr*A--A,dashed,Arrow3);
draw(pr*B--B,dashed,Arrow3);
draw(pr*C--C,dashed,Arrow3);
dot("$A$",A,N);
dot("$B$",B,N);
dot("$C$",C,N);

draw(pr*A--pr*B--pr*C--cycle,red);

triple A2=invert(pA,Z,(0,0,2)),
       B2=invert(pB,Z,(0,0,2)),
       C2=invert(pC,Z,(0,0,2));

draw(surface(A2--B2--C2--cycle),
   opacity(0.8),yellow+linewidth(1pt));
draw(pr2*A2--A2,dashed,Arrow3);
draw(pr2*B2--B2,dashed,Arrow3);
draw(pr2*C2--C2,dashed,Arrow3);
dot("$A_2$",A2,N);
dot("$B_2$",B2,N);
dot("$C_2$",C2,N);

draw(pr2*A2--pr2*B2--pr2*C2--cycle,red);


Je m'y retrouve mieux.
pardon pour le dérangement

Maurice

PS : mais pourquoi le code ne passe pas entre les balises asy ?
Asymptote :
----> Démarrage rapide : http://cgmaths.fr/Atelier/Asymptote/Asymptote.html
----> Documentation 3D : http://www.mathco.tuxfamily.org et si ça ne marche pas, essayez la version pdf
maurice
Méga-utilisateur
 
Messages: 399
Inscription: Jeudi 25 Mars 2010, 13:49
Statut actuel: Actif et salarié | Enseignant

Re: [Three] Invert et project

Messagepar maurice » Mardi 04 Janvier 2011, 22:38

Un problème est résolu et un autre suvient :

J'ai le code presque précédent :

Code: Tout sélectionner
import three;
currentprojection=orthographic(
   camera=(69.2603593017276,-25.962413603619,3.08446281490004),
   up=(-0.000694980676261478,0.00123909473034439,0.0260351938620393),
   target=(-1.4210854715202e-14,0,-8.88178419700125e-16),
   zoom=1);
size(6cm);

pair pA=(2.5,0.5);
pair pB=(2,2.5);
pair pC=(1,1);

triple p1=(0.5,0,1),
       p2=(0,2,1);
path3 pl=plane(p1,p2,O);
triple n=normal(pl);
transform3 pr=planeproject(Z,O,n);
transform3 pr2=planeproject(Z,O,Z);

triple A=invert(pA,n,p1),
       B=invert(pB,n,p1),
       C=invert(pC,n,p1);

draw(surface(A--B--C--cycle),
   opacity(0.8),yellow+linewidth(1pt));
draw(pr*A--A,dashed,Arrow3);
draw(pr*B--B,dashed,Arrow3);
draw(pr*C--C,dashed,Arrow3);
dot("$A$",A,N);
dot("$B$",B,N);
dot("$C$",C,N);

draw(pr*A--pr*B--pr*C--cycle,red);

triple A2=invert(pA,Z,(0,0,2)),
       B2=invert(pB,Z,(0,0,2)),
       C2=invert(pC,Z,(0,0,2));

draw(surface(A2--B2--C2--cycle),
   opacity(0.8),yellow+linewidth(1pt));
draw(pr2*A2--A2,dashed,Arrow3);
draw(pr2*B2--B2,dashed,Arrow3);
draw(pr2*C2--C2,dashed,Arrow3);
dot("$A_2$",A2,N);
dot("$B_2$",B2,N);
dot("$C_2$",C2,N);

draw(pr2*A2--pr2*B2--pr2*C2--cycle,red);


Si je fais (c) avec la sortie OpenGL, j'obtiens :

Code: Tout sélectionner
currentprojection=orthographic(
camera=(75.0442469247078,-28.1305179019304,3.34204430131601),
up=(-0.000695015692243039,0.00123915562854716,0.0260364648018259),
target=(-1.4210854715202e-14,0,-4.44089209850063e-16),
zoom=1);


Quelque soient les paramètre de la currentprojection, j'ai le même point de vue (meme si quand j'appuie sur (c), les paramètre changent)...

Encore une erreur de débutant ?

Maurice
Dernière édition par maurice le Mardi 04 Janvier 2011, 22:56, édité 1 fois.
Asymptote :
----> Démarrage rapide : http://cgmaths.fr/Atelier/Asymptote/Asymptote.html
----> Documentation 3D : http://www.mathco.tuxfamily.org et si ça ne marche pas, essayez la version pdf
maurice
Méga-utilisateur
 
Messages: 399
Inscription: Jeudi 25 Mars 2010, 13:49
Statut actuel: Actif et salarié | Enseignant

Re: [Three] Invert et project

Messagepar GMaths » Mardi 04 Janvier 2011, 22:41

Pas le temps de regarder ton exemple... mais si je comprends : tu souhaiterais dessiner une figure où on verrait deux triangles de l'espace qui aurait le même triangle projeté dans un plan choisi : deux projections de directions différentes ou la même ?

Dans les deux cas, invert ne te permettra pas d'avoir les antécédents (dans un plan choisi) des sommets du triangle projeté.

invert et project sont là pour faire le lien, entre les coordonnées triples d'un point dans l'espace et les coordonnées doubles de la représentation de ce même point sur une feuille ou sur l'écran de ton pc.

invert et project permettent de faire un aller-retour entre des coordonnées différentes d'un seul et unique point, respectivement dans un repère 3D et un repère 2D plaqué (sur la projection qui représente la situation 3D).
Donc, oui, il est question de projection... mais pas de celles qui transformeraient un point de l'espace en un autre point de l'espace.
Dernière édition par GMaths le Mardi 04 Janvier 2011, 23:57, édité 1 fois.
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: [Three] Invert et project

Messagepar GMaths » Mardi 04 Janvier 2011, 22:50

Tu sembles avoir résolu ton problème, entre temps, ... mais tu pars de trois pair, et pas vraiment d'un triangle projeté défini par trois triple...
donc pour que cela fonctionne avec un triangle projeté défini par trois points choisis de l'espace, repérés par des triplets, il y aurait des choses à revoir.

Je dis tout cela sans pouvoir tester actuellement... donc à considérer avec des réserves... d'autant plus que je n'ai quasiment jamais eu à utiliser invert.
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: [Three] Invert et project

Messagepar maurice » Mardi 04 Janvier 2011, 23:03

Bonsoir, en fait le problème n'est pas résolu (j'ai édité le code précédent).

Mais oui effectivement je souhaitais faire des aller-retour, projeté -- antécédent via invert et les projections.

Disons que ton explication me laisse un peu perplexe : j'ai du mal à saisir le sens de invert et project et des difficultés à en voir l'utilité (sans doute car je n'en ai jamais eu besoin). On dirait un espèce de plongement ...

Dans le code précédent, si on ajoute :
Code: Tout sélectionner
write(pr*A);
write(pr*B);
write(pr*C);
write(pr*A2);
write(pr*B2);
write(pr*C2);


on obtient :

Code: Tout sélectionner
(0.147838228741056,3.06698386064934,0)
(5.58590489819228,3.17128703894872,0)
(2.14204360204859,1.50020304918516,0)
(40.5367266375993,-10.0088926313576,0)
(-4.92935293869363,6.57559496059412,0)
(27.6018900590357,-6.74240576953163,0)

et j'ai effectivement du mal à saisir pourquoi partant dans les deux séries de invert des pairs :
Code: Tout sélectionner
pair pA=(2.5,0.5);
pair pB=(2,2.5);
pair pC=(1,1);

Et avec
Code: Tout sélectionner
write(project(A));
write(project(B));
write(project(C));
write(project(A2));
write(project(B2));
write(project(C2));

on obtient la même chose...

Code: Tout sélectionner
(0.147838228741056,3.06698386064934,0)
(5.58590489819228,3.17128703894872,0)
(2.14204360204859,1.50020304918516,0)
(40.5367266375993,-10.0088926313576,0)
(-4.92935293869363,6.57559496059412,0)
(27.6018900590357,-6.74240576953163,0)


Je suis de plus en plus perplexe...
La nuit porte conseil comme on dit ...

Et toujours ce point de vue qui ne varie pas malgré différentes currentprojection

Maurice

ps : je vais peut-être me contenter de extrude...
Asymptote :
----> Démarrage rapide : http://cgmaths.fr/Atelier/Asymptote/Asymptote.html
----> Documentation 3D : http://www.mathco.tuxfamily.org et si ça ne marche pas, essayez la version pdf
maurice
Méga-utilisateur
 
Messages: 399
Inscription: Jeudi 25 Mars 2010, 13:49
Statut actuel: Actif et salarié | Enseignant

Re: [Three] Invert et project

Messagepar GMaths » Mardi 04 Janvier 2011, 23:08

maurice a écrit:et j'ai effectivement du mal à saisir pourquoi partant dans les deux séries de invert des pairs :
Code: Tout sélectionner
pair pA=(2.5,0.5);
pair pB=(2,2.5);
pair pC=(1,1);

Et avec
Code: Tout sélectionner
write(project(A));
write(project(B));
write(project(C));
write(project(A2));
write(project(B2));
write(project(C2));

on obtient la même chose...


Comme je l'ai dit... je ne peux pas tester actuellement... mais si tu me dis que tu obtiens la même chose, je serais tenté de dire que les deux triangles sont dessinés au même endroit (en pouvant donner l'impression qu'ils seraient éventuellement confondus) lorsque tu lances la visualisation, sans bouger la figure.
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: [Three] Invert et project

Messagepar GMaths » Mardi 04 Janvier 2011, 23:18

maurice a écrit:Et toujours ce point de vue qui ne varie pas malgré différentes currentprojection


Je vais finir par écrire des conneries, à force de répondre, sans pouvoir tester ce que je dis...

... mais sur ce coup là, je suis tenté de dire qu'évidemment, cela ne varie pas car, tu as décidé que c'était :

Code: Tout sélectionner
pair pA=(2.5,0.5);
    pair pB=(2,2.5);
    pair pC=(1,1);


Et donc tu peux changer currentprojection si tu veux, la forme des triangles ne changera pas car imagine que ta figure est une figure 2D où le point (0,0,0) de l'espace serait le centre (0,0) du repère 2D collé sur ton écran : tes deux triangles dans ce repère 2D sont toujours définis par les points de coordonnées (2.5,0.5), (2,2.5) et (1,1).

maurice a écrit:PS : mais pourquoi le code ne passe pas entre les balises asy ?

Et si tu supprimes les opacity ? :roll:
Et si tu ajoutes settings.render=0; ? (probablement inutile car probablement systématiquement ajouté par les admin au niveau du php.)
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: [Three] Invert et project

Messagepar GMaths » Mercredi 05 Janvier 2011, 15:07

GMaths a écrit:... mais si je comprends : tu souhaiterais dessiner une figure où on verrait deux triangles de l'espace qui aurait le même triangle projeté dans un plan choisi : deux projections de directions différentes ou la même ?


J'ai un peu plus de temps pour y réfléchir ... si nécessaire ... et si tu précises ce que tu veux exactement.
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: [Three] Invert et project

Messagepar maurice » Mercredi 05 Janvier 2011, 15:51

GMaths a écrit:
GMaths a écrit:... mais si je comprends : tu souhaiterais dessiner une figure où on verrait deux triangles de l'espace qui aurait le même triangle projeté dans un plan choisi : deux projections de directions différentes ou la même ?


J'ai un peu plus de temps pour y réfléchir ... si nécessaire ... et si tu précises ce que tu veux exactement.


Bonjour, je ne veux rien faire de particulier si ce n'est de comprendre la commande invert et la commande project. malgrès mes efforts, je n'y arrive pas.
J'avais commencé par écrire :

e42f459415f08a24f8f480a793a408fc.png

Code: Tout sélectionner
import graph3;
currentprojection=orthographic(14,-8.5,2.5);
size(6cm);
triple A=(0.5,0,1),
B=(0,2,1);
pair pC=(1,1);
path3 pl=plane(A,B,O);
triple n=normal(pl);
transform3 pr=planeproject(Z,O,n);
triple pA=pr*A,
pB=pr*B,
C=invert(pC,n,A);
draw(surface(pl),yellow+linewidth(1pt));
draw(surface(pA--pr*C--pB--O--cycle),orange);
draw(A--pA,dashed,Arrow3);
draw(B--pB,dashed,Arrow3);
draw(pr*C--C,dashed,Arrow3);
dot("$A$",A,W);
dot("$B$",B,NE);
dot("$(1;1)$",pr*C,S);
dot("$C$",C,N);
dot("$p(A)$",pA,S);
dot("$p(B)$",pB,S);


où j'avais l'impression que
Code: Tout sélectionner
pair pC=(1,1);
C=invert(pC,n,A);
transform3 pr=planeproject(Z,O,n);

invert et pr étaient inverses l'une de l'autre ; erreur sans doute. Je n'ai pas bien compris la définition de invert et n'en voit pour l'instant pas l'intérêt.
Après j'avais essayé le code du post 1 avec des problèmes.

Un cas où il me semblait interéssant d'utiliser un truc comme project était le code dufil mais cela ne semple pas marcher.

Voila où j'en suis

Maurice
Asymptote :
----> Démarrage rapide : http://cgmaths.fr/Atelier/Asymptote/Asymptote.html
----> Documentation 3D : http://www.mathco.tuxfamily.org et si ça ne marche pas, essayez la version pdf
maurice
Méga-utilisateur
 
Messages: 399
Inscription: Jeudi 25 Mars 2010, 13:49
Statut actuel: Actif et salarié | Enseignant

Re: [Three] Invert et project

Messagepar GMaths » Mercredi 05 Janvier 2011, 16:15

Bon, je retente une explication !

Tu persistes à faire une image avec deux triangles... ce qui montre que tu ne m'as pas bien lu.

J'insiste : invert sert à passer d'un type de coordonnées à un autre type pour un seul et même point de la figure !!

Je pense qu'au départ, invert est une commande interne...
... mais elle peut servir à des problèmes spécifiques :

Exemple : dessiner un triangle dans le plan (xOy) qui donne l'impression d'être équilatéral :

b6065990ca19e7f37501c9c62784fb96.png

Code: Tout sélectionner
import graph3;
size(10cm);
currentprojection=orthographic(5,5,5);

triple pO=(0,0,0),
pA=invert((0,0),Z,pO),
pB=invert((3,0),Z,pO),
pC=invert(3*dir(60),Z,pO);

draw(pA--pB--pC--cycle,red);

void affichercoordonnees(triple pM,align d) {
label(format("(%.3f,",pM.x)+format("%.3f,",pM.y)+format("%.3f)",pM.z),pM,d);
}
affichercoordonnees(pB,E);
affichercoordonnees(pC,N);

limits(O,15X+15Y+15Z);
xaxis3(gray);
yaxis3(gray);
zaxis3(gray,zmax=20);
limits(O,10X+10Y+10Z);
xaxis3(Label("$x$",1),.8bp+blue,Arrow3());
yaxis3(Label("$y$",1),.8bp+blue,Arrow3());
zaxis3(Label("$z$",1),.8bp+blue,Arrow3());
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: [Three] Invert et project

Messagepar maurice » Mercredi 05 Janvier 2011, 18:21

Bonsoir,
GMaths a écrit:Bon, je retente une explication !

Tu persistes à faire une image avec deux triangles... ce qui montre que tu ne m'as pas bien lu.


Je ne persiste pas, ce dessin était le premier, je l'ai mis pour expliquer mon cheminement mental

GMaths a écrit:J'insiste : invert sert à passer d'un type de coordonnées à un autre type pour un seul et même point de la figure !!

Je pense qu'au départ, invert est une commande interne...
... mais elle peut servir à des problèmes spécifiques :

Exemple : dessiner un triangle dans le plan (xOy) qui donne l'impression d'être équilatéral :


Je crois bien que je commence à comprendre (il était temps).

Merci Maurice
Asymptote :
----> Démarrage rapide : http://cgmaths.fr/Atelier/Asymptote/Asymptote.html
----> Documentation 3D : http://www.mathco.tuxfamily.org et si ça ne marche pas, essayez la version pdf
maurice
Méga-utilisateur
 
Messages: 399
Inscription: Jeudi 25 Mars 2010, 13:49
Statut actuel: Actif et salarié | Enseignant

Re: [Three] Invert et project

Messagepar GMaths » Mercredi 05 Janvier 2011, 19:13

maurice a écrit:ce dessin était le premier

Je parlais bien sûr des codes proposés et donc des figures qu'elles suggéraient. ;-)

maurice a écrit:Je crois bien que je commence à comprendre (il était temps).

Il s'agit donc bien de projection mais de projection d'un point sur l'écran. ;-)
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant


Retourner vers Asymptote

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité