Prolonger un segment de l'espace

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.

Prolonger un segment de l'espace

Messagepar Cassiopee » Vendredi 31 Décembre 2010, 10:21

Bonjour,

Existe t-il l'équivalent de la commande interp(A,B,1.2) permettant de prolonger un segment au delà de ces extrémités pour l'espace (ds three?)

Merci
Cassiopee
Déca-utilisateur
 
Messages: 36
Inscription: Mercredi 22 Décembre 2010, 23:38
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: Commande pour prolonger un segment de l'espace?

Messagepar GMaths » Vendredi 31 Décembre 2010, 10:45

Je ne sais plus... et si cela ne devait pas exister, voilà :

f3c5c4f52d8faa4579e6e21fba090f30.png

Code: Tout sélectionner
settings.render=0;
import graph3;
size(6cm);
currentprojection=perspective(5,5,5);

triple interp(triple pA, triple pB, real k) {
return shift(pA)*scale3(k)*shift(-pA)*pB;
}

triple A=(1,2,3), B=(-2,5,0);

draw(box((0,0,0),A),.5bp+gray);
draw(box((0,0,0),B),.5bp+gray);

draw(interp(A,B,-.5)--interp(A,B,1.2),red);
dot(A--B,2bp+blue);


limits((0,0,0),(4,6,5));
xaxis3("$x$",Arrow3());
yaxis3("$y$",Arrow3());
zaxis3("$z$",Arrow3());
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: Commande pour prolonger un segment de l'espace?

Messagepar Cassiopee » Vendredi 31 Décembre 2010, 10:47

Bonjour GMaths,

Je ne comprends pas ta réponse!

?
Cassiopee
Déca-utilisateur
 
Messages: 36
Inscription: Mercredi 22 Décembre 2010, 23:38
Statut actuel: Actif et salarié | Enseignant

Re: Commande pour prolonger un segment de l'espace?

Messagepar maurice » Vendredi 31 Décembre 2010, 10:48

Oui, c'est la même !

Code: Tout sélectionner
import three;
size(4cm);
triple pA=(1,1,1);

dot("$O$",O,S);
dot("$A$",pA,S);

draw(O--interp(O,pA,1.2));


600616d3b3f592a482968101ce182d15.png

Code: Tout sélectionner
import three;
size(4cm);
triple pA=(1,1,1);

dot("$O$",O,S);
dot("$A$",pA,S);

draw(O--interp(O,pA,1.2));
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: Commande pour prolonger un segment de l'espace?

Messagepar Cassiopee » Vendredi 31 Décembre 2010, 10:49

Ok ça marche!
Cassiopee
Déca-utilisateur
 
Messages: 36
Inscription: Mercredi 22 Décembre 2010, 23:38
Statut actuel: Actif et salarié | Enseignant

Re: Commande pour prolonger un segment de l'espace?

Messagepar GMaths » Vendredi 31 Décembre 2010, 10:53

maurice a écrit:Oui, c'est la même !

:lol: :lol: :lol:

Comme la question était posée, je supposais que le test avait été fait au moins... et que cela ne fonctionnait pas.

Cassiopee a écrit:Je ne comprends pas ta réponse!

J'ai simplement réécrit la fonction dont j'avais pensé qu'elle n'existait pas avec cette syntaxe, puisque tu posais la question... mais je n'avais pas imaginé que tu n'avais pas eu la curiosité préalable d'essayer. ;-)

Code: Tout sélectionner
triple interp(triple pA, triple pB, real k) {
return shift(pA)*scale3(k)*shift(-pA)*pB;
}
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: Commande pour prolonger un segment de l'espace?

Messagepar Cassiopee » Vendredi 31 Décembre 2010, 11:13

eh bien j'ai testé la commande en l'utilisant pour déclarer un chemin : ça fonctionne en 2D et pas en 3D :

Code: Tout sélectionner
path d=interp(A,B,-0.2)--interp(A,B,12);
draw(d,bp+heavyred);


En 3D il faut l'utiliser directement à travers draw!

Je débute vraiment avec Asymptote (grâce à toi GM!) car jusqu'à présent j'utilisais TIKZ (il faut être indulgent :wink: ). Je suis émerveillé par l'efficacité du codage et le rendu en 3D!!!
J'ai créé un fichier macros3D en suivant le doc C. Grospellier avec la routine :

Code: Tout sélectionner
void cote3D(picture pic=currentpicture,
Label L="", triple A, triple B,
real d=5mm, triple v, bool cc=true,
pen p=currentpen, pen joinpen=dotted,
arrowbar3 arrow=Arrows3)
{
transform3 T=shift(d*unit(v));
triple A=A, B=B;
pic.add(new void(picture f, transform3 t) {
picture opic;
path3 dist;
triple Ap=t*A, Bp=t*B;
triple a=T*Ap, b=T*Bp;
if (cc) {dist=a--b;}
else {dist=b--a;}
draw(opic,L,dist,p,arrow);
draw(opic,a--Ap^^b--Bp,joinpen);
add(f,opic);
}, true);
}


Il y a un pb avec ces flèches! ça ne marche pas! Ce pb est-il connu?

Merci
Cassiopee
Déca-utilisateur
 
Messages: 36
Inscription: Mercredi 22 Décembre 2010, 23:38
Statut actuel: Actif et salarié | Enseignant

Re: Commande pour prolonger un segment de l'espace?

Messagepar GMaths » Vendredi 31 Décembre 2010, 11:21

Cassiopee a écrit:eh bien j'ai testé la commande en l'utilisant pour déclarer un chemin : ça fonctionne en 2D et pas en 3D :

Code: Tout sélectionner
path d=interp(A,B,-0.2)--interp(A,B,12);
draw(d,bp+heavyred);


En 3D il faut l'utiliser directement à travers draw!


En 3D, les path deviennent des path3 ! ;-)
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: Commande pour prolonger un segment de l'espace?

Messagepar maurice » Vendredi 31 Décembre 2010, 11:21

Cassiopee a écrit:eh bien j'ai testé la commande en l'utilisant pour déclarer un chemin : ça fonctionne en 2D et pas en 3D :

Code: Tout sélectionner
path d=interp(A,B,-0.2)--interp(A,B,12);
draw(d,bp+heavyred);


En 3D il faut l'utiliser directement à travers draw!


En 3D, path n'existe pas, il faut utiliser path3 :

1f8f6cdc93ccb8256174e04b9bf3e170.png

Code: Tout sélectionner
import three;
size(4cm);
triple pA=(1,1,1);

dot("$O$",O,E);
dot("$A$",pA,E);

path3 d=interp(O,pA,-0.2)--interp(O,pA,1.2);
draw(d,bp+heavyred);



Cassioppe a écrit:Il y a un pb avec ces flèches! ça ne marche pas! Ce pb est-il connu?


Ca marche, comment l'utilises tu ?

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: Commande pour prolonger un segment de l'espace?

Messagepar Cassiopee » Vendredi 31 Décembre 2010, 11:32

J'ai remplacé la routine :
Code: Tout sélectionner
void cote3D(picture pic=currentpicture,
Label L="", triple A, triple B,
real d=5mm, triple v, bool cc=true,
pen p=currentpen, pen joinpen=dotted,
arrowbar3 arrow=Arrows3)
{
transform3 T=shift(d*unit(v));
triple A=A, B=B;
pic.add(new void(picture f, transform3 t) {
picture opic;
path3 dist;
triple Ap=t*A, Bp=t*B;
triple a=T*Ap, b=T*Bp;
if (cc) {dist=a--b;}
else {dist=b--a;}
draw(opic,L,dist,p,arrow);
draw(opic,a--Ap^^b--Bp,joinpen);
add(f,opic);
}, true);
}

par celle là (un peu au pif) :
Code: Tout sélectionner
void cote3D(picture pic=currentpicture,
Label L="", triple A, triple B,
real d=5mm, triple v, bool cc=true,
pen p=currentpen, pen joinpen=dotted)
{
transform3 T=shift(d*unit(v));
triple A=A, B=B;
pic.add(new void(picture f, transform3 t) {
picture opic;
path3 dist;
triple Ap=t*A, Bp=t*B;
triple a=T*Ap, b=T*Bp;
if (cc) {dist=a--b;}
else {dist=b--a;}
draw(opic,L,dist,p,Arrows3);
draw(opic,a--Ap^^b--Bp,joinpen);
add(f,opic);
}, true);
}

Et j'ai obtenu une des figures 3D proposées :
Code: Tout sélectionner
import three;
defaultrender.merge=true;
settings.render=4;
size(10cm,20cm);

void cote3D(picture pic=currentpicture,
Label L="", triple A, triple B,
real d=5mm, triple v, bool cc=true,
pen p=currentpen, pen joinpen=dotted)
{
transform3 T=shift(d*unit(v));
triple A=A, B=B;
pic.add(new void(picture f, transform3 t) {
picture opic;
path3 dist;
triple Ap=t*A, Bp=t*B;
triple a=T*Ap, b=T*Bp;
if (cc) {dist=a--b;}
else {dist=b--a;}
draw(opic,L,dist,p,Arrows3);
draw(opic,a--Ap^^b--Bp,joinpen);
add(f,opic);
}, true);
}

real a=6, b=4, c=2, d=1;
currentprojection=orthographic(a/3,-b,2c/3);
// facteur de 120 pour que le prc soit à la "bonne" taille
transform3 T=shift(0,0,c);
triple A=(0,0,0), B=(a,0,0), C=(a,b,0), D=(0,b,0),
pE=T*A, F=T*B, G=T*C, H=T*D, P=(a-d,0,0);
pen ps=lightmagenta+opacity(.5), pT=bp+linetype("4 4");
draw(A--B--C--G--H--pE--F--G^^pE--A^^F--B,linewidth(bp));
draw(A--D--C^^H--D,pT);
draw(surface(H--D--P--cycle),ps,pT);
draw(surface(H--P--C--cycle),ps,pT);
draw(surface(H--D--C--cycle),ps,pT);
draw(surface(D--P--C--cycle),ps,pT);
label("$A$",A,S); label("$B$",B,SE); label("$C$",C,E);
label("$D$",D,NW); label("$E$",pE,NW+2W); label("$F$",F,SE);
label("$G$",G,E); label("$H$",H,N); label("$P$",P,SW);

cote3D(format("$%f$~cm",a),G,H,unit(H-pE));
cote3D(format("$%f$~cm",b),H,pE,3mm,unit(pE-F));
cote3D(format("$%f$~cm",c),pE,A,3mm,unit(pE-F));
cote3D(format("$%f$~cm",d),P,B,unit(B-F),red);

Avec la routine proposée dans la brochure j'obtiens un tas de flèches arrondies sous le pavé droit...
Dernière édition par chellier le Vendredi 31 Décembre 2010, 11:36, édité 1 fois.
Raison: balises code
Cassiopee
Déca-utilisateur
 
Messages: 36
Inscription: Mercredi 22 Décembre 2010, 23:38
Statut actuel: Actif et salarié | Enseignant

Re: Commande pour prolonger un segment de l'espace?

Messagepar chellier » Vendredi 31 Décembre 2010, 11:43

Cassiopee a écrit:Avec la routine proposée dans la brochure j'obtiens un tas de flèches arrondies sous le pavé droit...

:shock: :shock: :shock:

Je viens de retester, tout fonctionne très bien chez moi. En fait, je ne comprends pas, ta modification ne devrait rien changer, tu perds juste la possibilité de modifier le type de flèche dans la routine cote3D. Si quelqu'un d'autre pouvait aussi tester...

Christophe
chellier
Modérateur
 
Messages: 355
Inscription: Samedi 25 Juillet 2009, 11:25
Localisation: Le Creusot
Statut actuel: Actif et salarié | Enseignant

Re: Prolonger un segment de l'espace

Messagepar chellier » Vendredi 31 Décembre 2010, 11:59

La preuve en image, avec la routine de la documentation (cliquer sur l'image pour avoir le code) :

d176b687436ed7660dd07eac6f856b72.png

Code: Tout sélectionner
import three;
defaultrender.merge=true;
settings.render=0;
settings.prc=false;
size(10cm,20cm);

void cote3D(picture pic=currentpicture,
Label L="", triple A, triple B,
real d=5mm, triple v, bool cc=true,
pen p=currentpen, pen joinpen=dotted,
arrowbar3 arrow=Arrows3)
{
transform3 T=shift(d*unit(v));
triple A=A, B=B;
pic.add(new void(picture f, transform3 t) {
picture opic;
path3 dist;
triple Ap=t*A, Bp=t*B;
triple a=T*Ap, b=T*Bp;
if (cc) {dist=a--b;}
else {dist=b--a;}
draw(opic,L,dist,p,arrow);
draw(opic,a--Ap^^b--Bp,joinpen);
add(f,opic);
}, true);
}


real a=6, b=4, c=2, d=1;
currentprojection=orthographic(a/3,-b,2c/3);
// facteur de 120 pour que le prc soit à la "bonne" taille
transform3 T=shift(0,0,c);
triple A=(0,0,0), B=(a,0,0), C=(a,b,0), D=(0,b,0),
pE=T*A, F=T*B, G=T*C, H=T*D, P=(a-d,0,0);
pen ps=lightmagenta+opacity(.5), pT=bp+linetype("4 4");
draw(A--B--C--G--H--pE--F--G^^pE--A^^F--B,linewidth(bp));
draw(A--D--C^^H--D,pT);
draw(surface(H--D--P--cycle),ps,pT);
draw(surface(H--P--C--cycle),ps,pT);
draw(surface(H--D--C--cycle),ps,pT);
draw(surface(D--P--C--cycle),ps,pT);
label("$A$",A,S); label("$B$",B,SE); label("$C$",C,E);
label("$D$",D,NW); label("$E$",pE,NW+2W); label("$F$",F,SE);
label("$G$",G,E); label("$H$",H,N); label("$P$",P,SW);

cote3D(format("$%f$~cm",a),G,H,unit(H-pE));
cote3D(format("$%f$~cm",b),H,pE,3mm,unit(pE-F));
cote3D(format("$%f$~cm",c),pE,A,3mm,unit(pE-F));
cote3D(format("$%f$~cm",d),P,B,unit(B-F),red,arrow=Arrows3(HookHead3));


Christophe
chellier
Modérateur
 
Messages: 355
Inscription: Samedi 25 Juillet 2009, 11:25
Localisation: Le Creusot
Statut actuel: Actif et salarié | Enseignant

Re: Prolonger un segment de l'espace

Messagepar Cassiopee » Vendredi 31 Décembre 2010, 12:29

OK désolé j'ai peut être mal composé le fichier macros3D!
Suffit-il d'y recopier l'une après l'autre les macros proposées?

Code: Tout sélectionner
//pour le marquage des longueurs

void cote3D(picture pic=currentpicture,
Label L="", triple A, triple B,
real d=5mm, triple v, bool cc=true,
pen p=currentpen, pen joinpen=dotted,
arrowbar3 arrow=Arrows3)
{
transform3 T=shift(d*unit(v));
triple A=A, B=B;
pic.add(new void(picture f, transform3 t) {
picture opic;
path3 dist;
triple Ap=t*A, Bp=t*B;
triple a=T*Ap, b=T*Bp;
if (cc) {dist=a--b;}
else {dist=b--a;}
draw(opic,L,dist,p,arrow);
draw(opic,a--Ap^^b--Bp,joinpen);
add(f,opic);
}, true);
}

//pour le marquage des angles

void drawrightangle(picture pic=currentpicture,
triple M, triple A, triple B,
real radius=0,
pen p=currentpen,
pen fillpen=nullpen,
projection P=currentprojection)
{
p=linejoin(0)+linecap(0)+p;
if (radius==0) radius=arrowfactor*sqrt(2);
transform3 T=shift(-M);
triple OA=radius/sqrt(2)*unit(T*A),
OB=radius/sqrt(2)*unit(T*B),
OC=OA+OB;
path3 _p=OA--OC--OB;
picture pic_;
draw(pic_, _p, p=p);
if (fillpen!=nullpen) draw(pic_, surface(O--_p--cycle), fillpen);
add(pic,pic_,M);
}

//pour la cavalière

projection pcX(real k=.5, real angle=45)
{
transform3 t=identity(4);
real c2=Cos(angle)^2;
real s2=1-c2;
t[0][0]=-k*Cos(angle);
t[1][0]=-k*Sin(angle);
t[1][1]=0;
t[0][1]=1;
t[1][2]=1;
t[2][2]=0;
t[2][0]=1;
t[2][3]=-1;
return projection((1,c2,s2),normal=(1,0,0),
new transformation(triple,triple,triple) {
return transformation(t);});
}
projection pcX=pcX();

projection pcY(real k=.5, real angle=45)
{
transform3 t=identity(4);
real c2=Cos(angle)^2;
real s2=1-c2;
t[0][1]=k*Cos(angle);
t[1][1]=k*Sin(angle);
t[1][2]=1;
t[2][1]=-1;
t[2][2]=0;
t[2][3]=-1;
return projection((c2,-1,s2),normal=(0,-1,0),
new transformation(triple,triple,triple) {
return transformation(t);});
}
projection pcY=pcY();


Le doc pour un démarrage rapide m'est bien utile! Merci!!! :D
Dernière édition par MB le Vendredi 31 Décembre 2010, 12:36, édité 3 fois.
Raison: Balises code !
Cassiopee
Déca-utilisateur
 
Messages: 36
Inscription: Mercredi 22 Décembre 2010, 23:38
Statut actuel: Actif et salarié | Enseignant

Re: Prolonger un segment de l'espace

Messagepar chellier » Vendredi 31 Décembre 2010, 12:40

Cassiopee a écrit:OK désolé j'ai peut être mal composé le fichier macros3D!

Y a pas de mal :wink: :D

Cassiopee a écrit:Suffit-il d'y recopier l'une après l'autre les macros proposées?

Oui !

Cassiopee a écrit:Le doc pour un démarrage rapide m'est bien utile! Merci!!! :D

De rien, c'est fait pour ça, et les retours m'intéressent, notamment en cas de soucis. C'est déjà pas facile de se mettre à asymptote, si en plus j'ai écris des bêtises, il faut que je rectifie rapidement !

Christophe

Edit : Je rajoute mon fichier macros3D.asy, au cas où.
Code: Tout sélectionner
import three;

// --------- Définition de la perspective cavalière pcX -------

projection pcX(real k=.5, real angle=45)
{
  transform3 t=identity(4);
  real c2=Cos(angle)^2;
  real s2=1-c2;
//  t[0][0]=-c2;
//  t[1][0]=-s2;
  t[0][0]=-k*Cos(angle);
  t[1][0]=-k*Sin(angle);
  t[1][1]=0;
  t[0][1]=1;
  t[1][2]=1;
  t[2][2]=0;
  t[2][0]=1;
  t[2][3]=-1;
  return projection((1,c2,s2),normal=(1,0,0),
                    new transformation(triple,triple,triple) {
                      return transformation(t);});
}
projection pcX=pcX();

// --------- Définition de la perspective cavalière pcY -------

projection pcY(real k=.5, real angle=45)
{
  transform3 t=identity(4);
  real c2=Cos(angle)^2;
  real s2=1-c2;
  t[0][1]=k*Cos(angle);
  t[1][1]=k*Sin(angle);
//  t[0][1]=c2;
//  t[1][1]=s2;
  t[1][2]=1;
  t[2][1]=-1;
  t[2][2]=0;
  t[2][3]=-1;
  return projection((c2,-1,s2),normal=(0,-1,0),
                    new transformation(triple,triple,triple) {
                      return transformation(t);});
}

projection pcY=pcY();

// ------------------------------------------------------------

void cote3D(picture pic=currentpicture,
      Label L="", triple A, triple B,
                real d=5mm, triple v, bool cc=true,
      pen p=currentpen, pen joinpen=dotted,
                arrowbar3 arrow=Arrows3)
{
   transform3 T=shift(d*unit(v));
   triple A=A, B=B;
   pic.add(new void(picture f, transform3 t) {
      picture opic;
      path3 dist;
      triple Ap=t*A, Bp=t*B;
      triple a=T*Ap, b=T*Bp;
      if (cc) {dist=a--b;}
      else {dist=b--a;}
      draw(opic,L,dist,p,arrow);
      draw(opic,a--Ap^^b--Bp,joinpen);
      add(f,opic);
           }, true);
}

// -------------------------------------------------------------

void drawrightangle(picture pic=currentpicture,
                    triple M, triple A, triple B,
                    real radius=0,
                    pen p=currentpen,
                    pen fillpen=nullpen,
                    projection P=currentprojection)
{
  p=linejoin(0)+linecap(0)+p;
  if (radius==0) radius=arrowfactor*sqrt(2);
  transform3 T=shift(-M);
  triple OA=radius/sqrt(2)*unit(T*A),
    OB=radius/sqrt(2)*unit(T*B),
    OC=OA+OB;
  path3 _p=OA--OC--OB;
  picture pic_;
    draw(pic_, _p, p=p);
    if (fillpen!=nullpen) draw(pic_, surface(O--_p--cycle), fillpen);
  add(pic,pic_,M);
}

// -------------------------------------------------------------

void markangle3D(picture pic=currentpicture,
          Label L="",
                    triple M, triple A, triple B,
          bool cc=true,
                    real radius=0,
                    pen p=currentpen,
                    pen fillpen=nullpen,
          arrowbar3 arrow=None,
                    projection P=currentprojection)
{
  p=linejoin(0)+linecap(0)+p;
  if (radius==0) radius=arrowfactor*sqrt(2);
  transform3 T=shift(-M);
  triple OA=radius/sqrt(2)*unit(T*A),
    OB=radius/sqrt(2)*unit(T*B);
  path3 pl=O--OA--OB;
  triple V=normal(pl);
  path3 _p; real k;
  if (cc) k=1;
  else k=-1;
  picture pic_;
  _p=arc(O,OA,OB,k*V);
    if (fillpen!=nullpen) draw(pic_, surface(O--_p--cycle), fillpen);
  draw(pic_, L, _p, p=p, arrow);
  add(pic,pic_,M);
}
chellier
Modérateur
 
Messages: 355
Inscription: Samedi 25 Juillet 2009, 11:25
Localisation: Le Creusot
Statut actuel: Actif et salarié | Enseignant

Re: Prolonger un segment de l'espace

Messagepar Cassiopee » Vendredi 31 Décembre 2010, 15:32

En revanche, lorsque je veux faire apparaître la dernière figure du doc (perspective cavalère) avec le fichier macros3D que tu m'as fourni j'obtiens un message d'erreur :

Code: Tout sélectionner
Process started

GPL Ghostscript 8.61: **** Could not open the file cavali?re-1_0.pdf . C:\Program Files\Asymptote/plain_shipout.asy: 82.10: runtime: shipout failed

Process exited with error(s)


Code: Tout sélectionner
import three;
import macros3D;
size(10cm);
settings.render=0;
settings.prc=false;
currentlight=nolight;
currentprojection=pcY(.5,30);
transform3 T=shift(-2*Z);
triple A=O, B=(4,0,0), C=(4,4,0), D=(0,4,0), pS=(2,2,3),
pO=(2,2,0), pE=T*A, F=T*B, G=T*C, H=T*D;
draw(A--C^^B--D,dashed);
draw(A--B--C--pS--A^^pS--B);
draw(pS--D^^A--D--C,dashed);
draw(scale(.75)*"$3$~cm",pS--pO,dashed+red);
draw(A--pE--F--G--C^^B--F);
draw(pE--H--G^^H--D,dashed);
drawrightangle(pO,pS,B,5mm,fillpen=red);
cote3D(scale(.75)*"$2$~cm",A,pE,A-B);
cote3D(scale(.75)*"$4$~cm",pE,F,pE-A);
cote3D(scale(.75)*"$4$~cm",F,G,F-pE);
label("$A$",A,NW); label("$B$",B,SE);
label("$C$",C,E); label("$D$",D,W+.5N);
label("$S$",pS,N); label("$O$",pO,S);
label("$E$",pE,SW); label("$F$",F,SE);
label("$G$",G,NE); label("$H$",H,W+.5N);
Dernière édition par MB le Vendredi 31 Décembre 2010, 17:41, édité 2 fois.
Raison: Balises code
Cassiopee
Déca-utilisateur
 
Messages: 36
Inscription: Mercredi 22 Décembre 2010, 23:38
Statut actuel: Actif et salarié | Enseignant

Re: Prolonger un segment de l'espace

Messagepar Cassiopee » Vendredi 31 Décembre 2010, 15:37

Je me réponds pour me dire qu'il ne faut pas mettre d'accent dans le nom de fichier!!!
Cassiopee
Déca-utilisateur
 
Messages: 36
Inscription: Mercredi 22 Décembre 2010, 23:38
Statut actuel: Actif et salarié | Enseignant

Re: Prolonger un segment de l'espace

Messagepar chellier » Vendredi 31 Décembre 2010, 15:38

Bien vu ! :wink:

Christophe
chellier
Modérateur
 
Messages: 355
Inscription: Samedi 25 Juillet 2009, 11:25
Localisation: Le Creusot
Statut actuel: Actif et salarié | Enseignant

Re: Prolonger un segment de l'espace

Messagepar Cassiopee » Vendredi 31 Décembre 2010, 17:02

Dernière question pour clore le sujet qui part dans tous les sens :

Si on prend, par exemple, la figure donnée plus haut par Chellier - pyramide dans un parallélépipède rectangle - est-il possible de faire en sorte qu'en la faisant tourner après activation du pdf, les arêtes cachées passent automatiquement en pointillé alors que celles qui apparaissent passent en trait plein. Je pose la question en me disant que ce n'est sans doute pas possible!

Merci
Cassiopee
Déca-utilisateur
 
Messages: 36
Inscription: Mercredi 22 Décembre 2010, 23:38
Statut actuel: Actif et salarié | Enseignant

Re: Prolonger un segment de l'espace

Messagepar MB » Vendredi 31 Décembre 2010, 17:42

Cassiopee a écrit:Si on prend, par exemple, la figure donnée plus haut par Chellier - pyramide dans un parallélépipède rectangle - est-il possible de faire en sorte qu'en la faisant tourner après activation du pdf, les arêtes cachées passent automatiquement en pointillé alors que celles qui apparaissent passent en trait plein. Je pose la question en me disant que ce n'est sans doute pas possible!


Je ne crois pas que ça soit faisable (simplement en tous cas).
MB (Pas d'aide en Message Privé)
Merci d'utiliser $\LaTeX$ (voir ici) et d'éviter le style SMS pour la lisibilité des messages.
MB
Administrateur
 
Messages: 6890
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Re: Prolonger un segment de l'espace

Messagepar Francky » Vendredi 31 Décembre 2010, 18:38

http://www.geocentral.net/geometria/fr/ le fait très bien,
mais je sais pas si on peut l'inclure dans un pdf.
Linux Mint | TeXLive - TexMaker - asymptote | Python3 & C - Geany - Project Euler - SPOJ
Entia non sunt multiplicanda praeter necessitatem
Francky
Giga-utilisateur
 
Messages: 683
Inscription: Dimanche 11 Avril 2010, 13:01
Statut actuel: Actif et salarié | Enseignant

Suivante

Retourner vers Asymptote

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

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