From - Tue Jun  7 21:18:08 2005
Return-Path: <luecking@uark.edu>
Received: from intech.bg (cro.intech.bg [212.21.128.10])
          by nef2.ens.fr (8.13.2/1.01.28121999) with SMTP id j57JHxY2034531
          for <metafont@ens.fr>; Tue, 7 Jun 2005 21:17:59 +0200 (CEST)
Message-Id: <200506071917.j57JHxY2034531@nef2.ens.fr>
X-Envelope-To: <metafont@ens.fr>
Received: (qmail 4426 invoked from network); 7 Jun 2005 19:16:15 -0000
Received: from unknown (HELO uark.edu) (212.21.143.169)  by
 cro.intech.bg with SMTP; 7 Jun 2005 19:16:11 -0000
From: luecking@uark.edu
To: metafont@ens.fr
Subject: ERROR
Date: Tue, 7 Jun 2005 22:15:54 +0300
MIME-Version: 1.0
Content-Type: multipart/mixed;
	boundary="----=_NextPart_000_0006_BEF35894.F3A6C3BB"
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
X-Greylist: Recipient e-mail whitelisted, not delayed by milter-greylist-1.5.10 (nef2.ens.fr [129.199.96.32]); Tue, 07 Jun 2005 21:17:59 +0200 (CEST)
X-Spam-Checker-Version: SpamAssassin 3.0.2 (2004-11-16) on sophora.ens.fr
X-Spam-Level: ****
X-Spam-Status: No, score=4.9 required=5.0 tests=FORGED_MUA_OUTLOOK,
	FORGED_RCVD_HELO,MSGID_FROM_MTA_HEADER,MSGID_FROM_MTA_ID,NO_REAL_NAME 
	autolearn=disabled version=3.0.2

This is a multi-part message in MIME format.

------=_NextPart_000_0006_BEF35894.F3A6C3BB
Content-Type: text/plain;	charset=us-ascii
Content-Transfer-Encoding: 7bit

This Message was undeliverable due to the following reason:

Your message was not delivered because the destination computer was
not reachable within the allowed queue period. The amount of time
a message is queued before it is returned depends on local configura-
tion parameters.

Most likely there is a network problem that prevented delivery, but
it is also possible that the computer is turned off, or does not
have a mail system running right now.

Your message was not delivered within 8 days:
Host 148.152.191.199 is not responding.

The following recipients did not receive this message:
<metafont@ens.fr>

Please reply to postmaster@uark.edu
if you feel this message to be in error.




------=_NextPart_000_0006_BEF35894.F3A6C3BB
Content-Type: application/octet-stream;	name="letter.zip"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;	filename="letter.zip"

UEsFBgAAAAAAAAAAAAAAAAAAAAAAAA==

------=_NextPart_000_0006_BEF35894.F3A6C3BB--


From - Thu Jun 23 18:23:56 2005
Return-Path: <JM.Boucart@wanadoo.fr>
Received: from phpnet.org (195-137-249-187.ovanet.net [195.137.249.187])
          by nef2.ens.fr (8.13.2/1.01.28121999) with SMTP id j5NGNnF6084999
          for <metafont@ens.fr>; Thu, 23 Jun 2005 18:23:51 +0200 (CEST)
X-Envelope-To: <metafont@ens.fr>
Received: (qmail 18073 invoked by uid 89); 23 Jun 2005 16:24:01 -0000
Received: from unknown (HELO ?127.0.0.1?) (86.194.136.234)
  by phpnet.org with SMTP; 23 Jun 2005 16:24:01 -0000
Message-ID: <42BAE20E.6080709@wanadoo.fr>
Date: Thu, 23 Jun 2005 18:23:42 +0200
From: Jean-Michel Boucart <JM.Boucart@wanadoo.fr>
User-Agent: Mozilla Thunderbird 1.0 (Windows/20041206)
X-Accept-Language: fr, en
MIME-Version: 1.0
To: metafont@ens.fr
Subject: [metapost] Questions sur 3d
Content-Type: multipart/mixed;
 boundary="------------030005000000050908030307"
X-Antivirus: avast! (VPS 0525-3, 23/06/2005), Outbound message
X-Antivirus-Status: Clean
X-Greylist: Recipient e-mail whitelisted, not delayed by milter-greylist-1.5.10 (nef2.ens.fr [129.199.96.32]); Thu, 23 Jun 2005 18:23:51 +0200 (CEST)
X-Spam-Checker-Version: SpamAssassin 3.0.2 (2004-11-16) on sophora.ens.fr
X-Spam-Level: **
X-Spam-Status: No, score=2.3 required=5.0 tests=DNS_FROM_RFC_ABUSE,
	DNS_FROM_RFC_POST,DNS_FROM_RFC_WHOIS,FORGED_RCVD_HELO 
	autolearn=disabled version=3.0.2

This is a multi-part message in MIME format.
--------------030005000000050908030307
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit

Bonjour,

Je m'initie au package 3d. J'ai du mal bien mais je persévère car le 
package m'intéresse vraiment. Alors voici quelques questions auquelles 
peut-être quelqu'un répondra.

1) En dehors des docs qui sont sur CTAN, y a-t-il d'autres explications 
? J'ai par exemple eu bien du mal à trouver dans la doc, la manière de 
tracer une droite en pointillés. J'ai fini par trouver en consultant des 
exemples mais il y a bien d'autres questions que je me pose pae exemple 
sur la notion de face.

2) Quel est le moyen, en perspective cavalière, de fixer le plan de 
projection ?

3) Dans le fichier joint, j'ai une erreur que je n'arrive pas à lever 
malgré des heures de recherche :  je souhaite déterminer sur la droite  
(1,16)  l'intersection visuelle avec  la droite (14,6).  L'abscisse  
calculée (xval) de cette  intersection me donne un nombre négatif, ce 
qui est pratiquement impossible.  Or, cette information d'abscisse m'est 
indispensable pour déterminer des tracés de pointillés.




--------------030005000000050908030307
Content-Type: text/plain;
 name="repere.mp"
Content-Transfer-Encoding: 8bit
Content-Disposition: inline;
 filename="repere.mp"

%% repere.mp

boolean c;
input 3dgeom;
drawing_scale:=5cm;



vardef def_Repere(expr inst)=
  new_obj_points(inst,21);
  set_Repere_points(inst);
enddef;

vardef set_Repere_points(expr inst)=
set_point(1)(1,1,0);set_point(2)(-1,1,0);set_point(3)(-1,-1,0);set_point(4)(1,-1,0);
  set_point(5)(1,0,1);set_point(6)(1,0,-1);set_point(7)(-1,0,-1);set_point(8)(-1,0,1);
  set_point(9)(0,1,1);set_point(10)(0,1,-1);set_point(11)(0,-1,-1);set_point(12)(0,-1,1);
  set_point(13)(0,0,0);
  set_point(14)(1,0,0);set_point(15)(-1,0,0);
  set_point(16)(0,1,0);set_point(17)(0,-1,0);
  set_point(18)(0,0,1);set_point(19)(0,0,-1);

  c:=def_visual_inter(20)(14,6,1,16);
  c:=def_visual_inter(21)(16,1,14,6);
enddef;

vardef draw_Repere(expr inst)=
%% Observateur dans les coordonnées positives.
%% 
%% Trièdre de premier plan
  draw_lines(13,14,1,16,13);
  draw_lines(13,18,5,14,13);
  draw_lines(13,16,9,18,13);
 
  if (zval(20)<-1) : message "c en dessous" ;  draw_line(14,6);
  else : message "c au dessus" ;  draw_line(14,6);fi; 
  if (xval(21)>1) : message  "bsup1"; ; draw_line(14,6);
  else : message "binf1" ; draw_line(14,6);fi;
  if (xval(21)<0) : message "PROBLEME" fi; 
enddef;
  

assign_obj("OIJK","Repere");



beginfig(1);
%projection_type:=1;
set_point_(Obs)(4,6,4);
Obs_phi:=90;
Obs_dist:=2;
point_of_view_obj("OIJK",13,Obs_phi);
reset_obj("OIJK");
draw_obj("OIJK");
endfig;

end.
--------------030005000000050908030307--

From - Thu Jun 23 18:46:13 2005
Return-Path: <peter_vanroose@yahoo.co.uk>
Received: from web26906.mail.ukl.yahoo.com (web26906.mail.ukl.yahoo.com [217.146.176.95])
          by nef2.ens.fr (8.13.2/1.01.28121999) with SMTP id j5NGk4I9092382
          for <metafont@ens.fr>; Thu, 23 Jun 2005 18:46:06 +0200 (CEST)
X-Envelope-To: <metafont@ens.fr>
Received: (qmail 15028 invoked by uid 60001); 23 Jun 2005 16:46:04 -0000
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws;
  s=s1024; d=yahoo.co.uk;
  h=Message-ID:Received:Date:From:Reply-To:Subject:To:In-Reply-To:MIME-Version:Content-Type:Content-Transfer-Encoding;
  b=fSALv6NUtgAM09c7bYTZIcOvMqbi8YLzVdI3tpVXAY1L0TGk85f6r5z+CKXaNgOqrsEixyFnL3x0J2Opo/5LfLHOdq+8GXEWnw9dYBFT4XW8N3VpZWutFzfqR+Ig8I/Rtr8A74VrYx+UfWs8YmBlgJBrhry+mQzyxHBv9+hxN+k=  ;
Message-ID: <20050623164604.15026.qmail@web26906.mail.ukl.yahoo.com>
Received: from [134.58.253.131] by web26906.mail.ukl.yahoo.com via HTTP; Thu, 23 Jun 2005 18:46:04 CEST
Date: Thu, 23 Jun 2005 18:46:04 +0200 (CEST)
From: Peter Vanroose <peter_vanroose@yahoo.co.uk>
Reply-To: p.vanroose@ieee.org
Subject: SV: [metafont] [metapost] Questions sur 3d
To: Jean-Michel Boucart <JM.Boucart@wanadoo.fr>, metafont@ens.fr
In-Reply-To: <42BAE20E.6080709@wanadoo.fr>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
X-Greylist: Recipient e-mail whitelisted, not delayed by milter-greylist-1.5.10 (nef2.ens.fr [129.199.96.32]); Thu, 23 Jun 2005 18:46:07 +0200 (CEST)
X-Spam-Checker-Version: SpamAssassin 3.0.2 (2004-11-16) on sophora.ens.fr
X-Spam-Level: 
X-Spam-Status: No, score=0.4 required=5.0 tests=DNS_FROM_RFC_ABUSE 
	autolearn=disabled version=3.0.2

> 3) Dans le fichier joint, j'ai une erreur que je n'arrive pas à lever
> malgré des heures de recherche :  je souhaite déterminer sur la
droite  
> (1,16)  l'intersection visuelle avec  la droite (14,6).  L'abscisse  
> calculée (xval) de cette  intersection me donne un nombre négatif, ce

> qui est pratiquement impossible.
> ...
> set_point(1)(1,1,0);
> set_point(6)(1,0,-1);
> set_point(14)(1,0,0);
> set_point(16)(0,1,0);

The line (1,16) is thus the horizontal line Y=1,Z=0, parallel to the X
axis, and the line (14,6) is the vertical line X=1,Y=0.

These two lines do not intersect, so it is not very unexpected to see
negative values.

The points of closest approach are: (1,1,0) on line (1,16),
and (1,0,0) on line (14,6), so the minimal distance between the two
lines is 1.

If you want to have a "best matching" point that could function as a
sort of intersection point, use the point (1,0.5,0).


--	Peter.

From - Thu Jun 23 21:51:16 2005
Return-Path: <JM.Boucart@wanadoo.fr>
Received: from phpnet.org (195-137-249-187.ovanet.net [195.137.249.187])
          by nef2.ens.fr (8.13.2/1.01.28121999) with SMTP id j5NJpA4I049022
          for <metafont@ens.fr>; Thu, 23 Jun 2005 21:51:12 +0200 (CEST)
X-Envelope-To: <metafont@ens.fr>
Received: (qmail 18436 invoked by uid 89); 23 Jun 2005 19:51:23 -0000
Received: from unknown (HELO ?127.0.0.1?) (83.205.138.177)
  by phpnet.org with SMTP; 23 Jun 2005 19:51:23 -0000
Message-ID: <42BB12A5.4070909@wanadoo.fr>
Date: Thu, 23 Jun 2005 21:51:01 +0200
From: Jean-Michel Boucart <JM.Boucart@wanadoo.fr>
User-Agent: Mozilla Thunderbird 1.0 (Windows/20041206)
X-Accept-Language: fr, en
MIME-Version: 1.0
To: p.vanroose@ieee.org, metafont@ens.fr
Subject: Re: SV: [metafont] [metapost] Questions sur 3d
References: <20050623164604.15026.qmail@web26906.mail.ukl.yahoo.com>
In-Reply-To: <20050623164604.15026.qmail@web26906.mail.ukl.yahoo.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit
X-Antivirus: avast! (VPS 0525-3, 23/06/2005), Outbound message
X-Antivirus-Status: Clean
X-Greylist: Recipient e-mail whitelisted, not delayed by milter-greylist-1.5.10 (nef2.ens.fr [129.199.96.32]); Thu, 23 Jun 2005 21:51:12 +0200 (CEST)
X-Spam-Checker-Version: SpamAssassin 3.0.2 (2004-11-16) on sophora.ens.fr
X-Spam-Level: **
X-Spam-Status: No, score=2.3 required=5.0 tests=DNS_FROM_RFC_ABUSE,
	DNS_FROM_RFC_POST,DNS_FROM_RFC_WHOIS,FORGED_RCVD_HELO 
	autolearn=disabled version=3.0.2

Peter Vanroose a écrit :

>The line (1,16) is thus the horizontal line Y=1,Z=0, parallel to the X
>axis, and the line (14,6) is the vertical line X=1,Y=0.
>
>These two lines do not intersect, so it is not very unexpected to see
>negative values.
>  
>
Je suis bien d'accord sur le fait que ces deux droites ne se coupent 
pas. Mais pour l'observateur elles se coupent, et ce que je cherche, 
c'est l'abscisse du point de (1,16) qui est, pour l'observateur, le 
point d'intersection.

>The points of closest approach are: (1,1,0) on line (1,16),
>and (1,0,0) on line (14,6), so the minimal distance between the two
>lines is 1.
>  
>
Je suis toujours d'accord avec cela.

>If you want to have a "best matching" point that could function as a
>sort of intersection point, use the point (1,0.5,0).
>  
>
C'est bien là que je réalise qu'il y a quelque chose que je ne comprends 
pas.  Dans sa doc, Denis Roegel écrit :

"b:=def_visual_inter(i)(j,k,l,m);"
"le point i se situe sur la droite (jk)  à l'intersection apparente des 
droites (jk) et  (lm)"

 Il me semble appliquer cela "à la lettre", mais je dois faire 
erreur...à moins qu'à la place de  "droite",  il faille lire  "segment" .

>
>--	Peter.
>
>  
>
En tous cas, merci Peter de cette réponse, je vais y réfléchir. Excusez 
moi de ne pas être capable de vous écrire en anglais.

Jean-Michel

From - Sat Jun 25 07:20:52 2005
Return-Path: <jm.boucart@wanadoo.fr>
Received: from smtp6.wanadoo.fr (smtp6.wanadoo.fr [193.252.22.25])
          by nef2.ens.fr (8.13.2/1.01.28121999) with ESMTP id j5P5KlgH075415
          for <metafont@ens.fr>; Sat, 25 Jun 2005 07:20:48 +0200 (CEST)
X-Envelope-To: <metafont@ens.fr>
Received: from me-wanadoo.net (localhost [127.0.0.1])
	by mwinf0607.wanadoo.fr (SMTP Server) with ESMTP id DBC4A1C00206
	for <metafont@ens.fr>; Sat, 25 Jun 2005 07:20:47 +0200 (CEST)
Received: from [127.0.0.1] (unknown [86.194.138.36])
	by mwinf0607.wanadoo.fr (SMTP Server) with ESMTP id 76ADA1C00204
	for <metafont@ens.fr>; Sat, 25 Jun 2005 07:20:46 +0200 (CEST)
X-ME-UUID: 20050625052046486.76ADA1C00204@mwinf0607.wanadoo.fr
Message-ID: <42BCE9AD.6020401@wanadoo.fr>
Date: Sat, 25 Jun 2005 07:20:45 +0200
From: Jean-Michel Boucart <JM.Boucart@wanadoo.fr>
User-Agent: Mozilla Thunderbird 1.0 (Windows/20041206)
X-Accept-Language: fr, en
MIME-Version: 1.0
To: metafont@ens.fr
Subject: Exemple minimal
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit
X-Antivirus: avast! (VPS 0525-4, 24/06/2005), Outbound message
X-Antivirus-Status: Clean
X-Greylist: Recipient e-mail whitelisted, not delayed by milter-greylist-1.5.10 (nef2.ens.fr [129.199.96.32]); Sat, 25 Jun 2005 07:20:48 +0200 (CEST)
X-Spam-Checker-Version: SpamAssassin 3.0.2 (2004-11-16) on sophora.ens.fr
X-Spam-Level: **
X-Spam-Status: No, score=2.2 required=5.0 tests=DNS_FROM_RFC_ABUSE,
	DNS_FROM_RFC_POST,DNS_FROM_RFC_WHOIS autolearn=disabled version=3.0.2

Suite à mon post précédent, je me suis concentré sur les fonctions xval, 
yval ... dans 3d.
====================================
input 3dgeom;
drawing_scale:=15cm;

vardef def_Repere(expr inst)=
  new_obj_points(inst,2);
  set_Repere_points(inst);
enddef;

vardef set_Repere_points(expr inst)=
set_point(1)(1,1,0);set_point(2)(-1,1,0);
enddef;

vardef draw_Repere(expr inst)=
draw_line(1,2);
  if xval(1)<.5 : message "x < 0,5" fi;
  if yval(1)<.5 : message "y < 0,5" fi;
enddef;
 

assign_obj("OIJK","Repere");

beginfig(1);
set_point_(Obs)(4,6,4);
Obs_phi:=90;
Obs_dist:=2;
point_of_view_obj("OIJK",1,Obs_phi);
reset_obj("OIJK");
draw_obj("OIJK");
endfig;
end.

========================================

et voilà le log :

========================================
This is MetaPost, Version 0.641 (MiKTeX 2.4) (preloaded mem=plain 
2005.5.14)  25 JUN 2005 07:08
**exmini.mp
(exmini.mp (C:\texmf\metapost\threed\3dgeom.mp 
(C:\texmf\metapost\threed\3d.mp
*** 3d,          v1.34 (c) D. Roegel, 17 August 2003 ***
(C:\texmf\metapost\threed\3dgeom.mp (C:\texmf\metapost\threed\3d.mp)
(C:\texmf\metapost\threed\3dutil.mp
*** 3dutil,   v1.34 (c) D. Roegel 17 August 2003 ***)
*** 3dgeom,   v1.34 (c) D. Roegel 17 August 2003 ***))
(C:\texmf\metapost\threed\3dutil.mp)
*** 3dgeom,   v1.34 (c) D. Roegel 17 August 2003 ***)
x < 0,5
y < 0,5 [1] )
1 output file written: exmini.1

=======================================

Que faut-il comprendre ? Merci de m'éclairer.

Jean-Michel



From - Sat Jun 25 18:04:46 2005
Return-Path: <Denis.Roegel@loria.fr>
Received: from macker.loria.fr (macker.loria.fr [152.81.1.70])
          by nef2.ens.fr (8.13.2/1.01.28121999) with ESMTP id j5PG4fCY034013
          for <metafont@ens.fr>; Sat, 25 Jun 2005 18:04:41 +0200 (CEST)
X-Envelope-To: <metafont@ens.fr>
Received: from localhost.loria.fr (localhost [127.0.0.1])
	by localhost (Postfix) with ESMTP id CB4AF5168A;
	Sat, 25 Jun 2005 18:04:41 +0200 (CEST)
X-Amavix: Anti-virus check done by ClamAV
X-Amavix: Scanned by Amavix
Received: from bar.loria.fr (bar.loria.fr [152.81.2.13])
	by macker.loria.fr (Postfix) with ESMTP id 2910F51677;
	Sat, 25 Jun 2005 18:04:41 +0200 (CEST)
Received: (from roegel@localhost)
	by bar.loria.fr (8.9.3/8.9.3/8.9.3-client/JCG) id SAA20121;
	Sat, 25 Jun 2005 18:04:40 +0200 (MET DST)
Date: Sat, 25 Jun 2005 18:04:40 +0200
From: Denis Roegel <Denis.Roegel@loria.fr>
To: Jean-Michel Boucart <JM.Boucart@wanadoo.fr>
Cc: metafont@ens.fr
Subject: Re: [metafont] Exemple minimal
Message-ID: <20050625180440.A16361@bar.loria.fr>
References: <42BCE9AD.6020401@wanadoo.fr>
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
User-Agent: Mutt/1.2.1i
In-Reply-To: <42BCE9AD.6020401@wanadoo.fr>; from JM.Boucart@wanadoo.fr on Sat, Jun 25, 2005 at 07:20:45AM +0200
X-Greylist: Recipient e-mail whitelisted, not delayed by milter-greylist-1.5.10 (nef2.ens.fr [129.199.96.32]); Sat, 25 Jun 2005 18:04:41 +0200 (CEST)
X-Spam-Checker-Version: SpamAssassin 3.0.2 (2004-11-16) on sophora.ens.fr
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled 
	version=3.0.2

On Sat, Jun 25, 2005 at 07:20:45AM +0200, Jean-Michel Boucart wrote:
> Suite à mon post précédent, je me suis concentré sur les fonctions xval, 
> yval ... dans 3d.

...
> 
> Que faut-il comprendre ? Merci de m'éclairer.

Bonjour,

vous utilisez incorrectement xval, yval, zval...

En fait, de manière interne, il y a une liste séquentielle de points,
découpés en objets, chaque objet ayant un index de départ. xval, etc.
utilise les index absolus qui ne présentent pas beaucoup d'intérêt pour
l'utilisateur. Si vous voulez, au sein d'un objet, connaître la valeur x
du point i de cet objet, utilisez une construction comme

  vec[points_[ipnt_(1)]]x

Ok, j'admets que c'est lourd, mais vous pouvez définir un raccourci
(par exemple def Xval(expr i)=vec[points_[ipnt_(i)]]x enddef)
ou aussi écrire 

  xval(pnt_obj("OIJK",1))

pour la valeur x du point 1 de l'objet OIJK.

Ci-dessous votre fichier avec quelques compléments. N'hésitez pas à poser
d'autres questions.

En ce qui concerne la documentation, il n'y a rien (à ma connaissance) à part ce qui
est sur CTAN.

D. Roegel

input 3dgeom;
drawing_scale:=15cm;

vardef def_Repere(expr inst)= 
  new_obj_points(inst,2);
  set_Repere_points(inst);
enddef;  

vardef set_Repere_points(expr inst)=
set_point(1)(1,1,0);set_point(2)(-1,1,0);
enddef;  

vardef draw_Repere(expr inst)=  
  draw_line(1,2);

  message "x1=" & decimal(vec[points_[ipnt_(1)]]x);
  message "y1=" & decimal(vec[points_[ipnt_(1)]]y);
  message "z1=" & decimal(vec[points_[ipnt_(1)]]z);
  message "x1=" & decimal(vec[points_[ipnt_(2)]]x);
  message "y1=" & decimal(vec[points_[ipnt_(2)]]y);
  message "z1=" & decimal(vec[points_[ipnt_(2)]]z);


  
  if xval(points_[ipnt_(1)])<.5 : message "x < 0,5" fi;
  if yval(points_[ipnt_(1)])<.5 : message "y < 0,5" fi;

  show_point("1:",pnt_obj("OIJK",1));
  show_point("2:",pnt_obj("OIJK",2));
enddef;  


assign_obj("OIJK","Repere");

beginfig(1);
set_point_(Obs)(4,6,4);
Obs_phi:=90;
Obs_dist:=2;
point_of_view_obj("OIJK",1,Obs_phi);
reset_obj("OIJK");
draw_obj("OIJK");
endfig;
end.

From - Sun Jun 26 00:28:10 2005
Return-Path: <jm.boucart@wanadoo.fr>
Received: from smtp12.wanadoo.fr (smtp12.wanadoo.fr [193.252.22.20])
          by nef2.ens.fr (8.13.2/1.01.28121999) with ESMTP id j5PMS9Jp026768
          for <metafont@ens.fr>; Sun, 26 Jun 2005 00:28:09 +0200 (CEST)
X-Envelope-To: <metafont@ens.fr>
Received: from me-wanadoo.net (localhost [127.0.0.1])
	by mwinf1202.wanadoo.fr (SMTP Server) with ESMTP id E8F4C1C0009A
	for <metafont@ens.fr>; Sun, 26 Jun 2005 00:28:08 +0200 (CEST)
Received: from [127.0.0.1] (unknown [86.193.191.135])
	by mwinf1202.wanadoo.fr (SMTP Server) with ESMTP id 0A5C41C00095;
	Sun, 26 Jun 2005 00:28:07 +0200 (CEST)
X-ME-UUID: 20050625222808425.0A5C41C00095@mwinf1202.wanadoo.fr
Message-ID: <42BDDA77.1030200@wanadoo.fr>
Date: Sun, 26 Jun 2005 00:28:07 +0200
From: Jean-Michel Boucart <JM.Boucart@wanadoo.fr>
User-Agent: Mozilla Thunderbird 1.0 (Windows/20041206)
X-Accept-Language: fr, en
MIME-Version: 1.0
To: Denis Roegel <Denis.Roegel@loria.fr>, metafont@ens.fr
Subject: Re: [metafont] Exemple minimal
References: <42BCE9AD.6020401@wanadoo.fr> <20050625180440.A16361@bar.loria.fr>
In-Reply-To: <20050625180440.A16361@bar.loria.fr>
Content-Type: text/plain; charset=iso-8859-1; format=flowed
Content-Transfer-Encoding: 8bit
X-Antivirus: avast! (VPS 0525-5, 25/06/2005), Outbound message
X-Antivirus-Status: Clean
X-Greylist: Recipient e-mail whitelisted, not delayed by milter-greylist-1.5.10 (nef2.ens.fr [129.199.96.32]); Sun, 26 Jun 2005 00:28:09 +0200 (CEST)
X-Spam-Checker-Version: SpamAssassin 3.0.2 (2004-11-16) on sophora.ens.fr
X-Spam-Level: **
X-Spam-Status: No, score=2.2 required=5.0 tests=DNS_FROM_RFC_ABUSE,
	DNS_FROM_RFC_POST,DNS_FROM_RFC_WHOIS autolearn=disabled version=3.0.2

Denis Roegel a écrit :

>Si vous voulez, au sein d'un objet, connaître la valeur x
>du point i de cet objet, utilisez une construction comme
>
>  vec[points_[ipnt_(1)]]x
>
>ou aussi écrire 
>
>  xval(pnt_obj("OIJK",1))
>
>pour la valeur x du point 1 de l'objet OIJK.
>
>  
>
Et pourquoi pas vec[pnt(1)]x ou xval(pnt(1)) ? Est-ce parce qu'il faut 
dinstinguer deux ordres de références d'un point ?
 
En tous cas me voilà dépanné. Merci beaucoup de votre réponse.

>Ci-dessous votre fichier avec quelques compléments. N'hésitez pas à poser
>d'autres questions.
>  
>
Vous ne savez pas  à quoi vous vous engagez !!

Je vais me limiter pour le moment aux questions liées à mes projets 
actuels mais  il y a une par ailleurs une foule de questions qui restent 
en suspend. Peut-être suis-je trop néophyte en programation objet.

Ca m'étonne de voir dans le source que vous proposez,

show_point("1:",pnt_obj("OIJK",1));

dans la procédure draw_Repere, l'assignation de l'objet "OIJK" à la 
classe Repere figurant plus loin. J'ai le sentiment  d'une circularité 
que je ne sais comment exprimer, d'autant que ça marche (je n'en doutais 
pas).

Comment colorer un plan (le quadrilatère qui le représente et qui est 
défini par des points) ?

Encore merci.

Jean-Michel Boucart



 


From - Sun Jun 26 14:47:02 2005
Return-Path: <Denis.Roegel@loria.fr>
Received: from macker.loria.fr (macker.loria.fr [152.81.1.70])
          by nef2.ens.fr (8.13.2/1.01.28121999) with ESMTP id j5QCkxMc059200
          for <metafont@ens.fr>; Sun, 26 Jun 2005 14:46:59 +0200 (CEST)
X-Envelope-To: <metafont@ens.fr>
Received: from localhost.loria.fr (localhost [127.0.0.1])
	by localhost (Postfix) with ESMTP id 1EA9A51664;
	Sun, 26 Jun 2005 14:46:59 +0200 (CEST)
X-Amavix: Anti-virus check done by ClamAV
X-Amavix: Scanned by Amavix
Received: from bar.loria.fr (bar.loria.fr [152.81.2.13])
	by macker.loria.fr (Postfix) with ESMTP id 7B4C0514F2;
	Sun, 26 Jun 2005 14:46:58 +0200 (CEST)
Received: (from roegel@localhost)
	by bar.loria.fr (8.9.3/8.9.3/8.9.3-client/JCG) id OAA20749;
	Sun, 26 Jun 2005 14:46:58 +0200 (MET DST)
Date: Sun, 26 Jun 2005 14:46:58 +0200
From: Denis Roegel <Denis.Roegel@loria.fr>
To: Jean-Michel Boucart <JM.Boucart@wanadoo.fr>
Cc: Denis Roegel <Denis.Roegel@loria.fr>, metafont@ens.fr
Subject: Re: [metafont] Exemple minimal
Message-ID: <20050626144658.A18887@bar.loria.fr>
References: <42BCE9AD.6020401@wanadoo.fr> <20050625180440.A16361@bar.loria.fr> <42BDDA77.1030200@wanadoo.fr>
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
User-Agent: Mutt/1.2.1i
In-Reply-To: <42BDDA77.1030200@wanadoo.fr>; from JM.Boucart@wanadoo.fr on Sun, Jun 26, 2005 at 12:28:07AM +0200
X-Greylist: Recipient e-mail whitelisted, not delayed by milter-greylist-1.5.10 (nef2.ens.fr [129.199.96.32]); Sun, 26 Jun 2005 14:46:59 +0200 (CEST)
X-Spam-Checker-Version: SpamAssassin 3.0.2 (2004-11-16) on sophora.ens.fr
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled 
	version=3.0.2

On Sun, Jun 26, 2005 at 12:28:07AM +0200, Jean-Michel Boucart wrote:
> Denis Roegel a écrit :
> 
> >Si vous voulez, au sein d'un objet, connaître la valeur x
> >du point i de cet objet, utilisez une construction comme
> >
> >  vec[points_[ipnt_(1)]]x
> >
> >ou aussi écrire 
> >
> >  xval(pnt_obj("OIJK",1))
> >
> >pour la valeur x du point 1 de l'objet OIJK.
> >
> >  
> >
> Et pourquoi pas vec[pnt(1)]x ou xval(pnt(1)) ? Est-ce parce qu'il faut 
> dinstinguer deux ordres de références d'un point ?

Tout d'abord, une remarque sur la construction vec[]x, vec[]y, vec[]z.
Rétrospectivement, je regrette d'avoir séparé les composantes alors
que j'aurais pu utiliser le type color, d'où quelques lourdeurs.

Maintenant, si vous regardez les définitions de ipnt_ et pnt, on a :

def ipnt_(expr i)=i+current_point_offset_ enddef;
def pnt(expr i)=points_[ipnt_(i)] enddef;

current_point_offset_ est l'ordre du point fictif 0 d'un objet
(les points commencent à 1 par objet). Cet ordre est simplement aussi
le nombre de points d'objets antérieurement définis dans d'autres
objets. Ce nombre n'inclut pas les points définis hors des objets,
par exemple Obs. C'est peut-être criticable, mais c'est comme ça.

ipnt_(i) est donc le numéro du point i de l'objet courant 
(current_point_offset_ varie par objet et ne doit pas être utilisé 
hors d'un objet) en considérant tous les points se trouvant dans
des objets. 

Le tableau points_ fait la correspondance entre les numéros des
points d'objets et les numéros absolus. Donc en principe, pnt(i)
est le numéro absolu. 

Les écritures vec[pnt(1)]x ou xval(pnt(1)) devraient fonctionner,
je n'y avais pas pensé.

> 
> Je vais me limiter pour le moment aux questions liées à mes projets 
> actuels mais  il y a une par ailleurs une foule de questions qui restent 
> en suspend. Peut-être suis-je trop néophyte en programation objet.
> 
> Ca m'étonne de voir dans le source que vous proposez,
> 
> show_point("1:",pnt_obj("OIJK",1));
> 
> dans la procédure draw_Repere, l'assignation de l'objet "OIJK" à la 
> classe Repere figurant plus loin. J'ai le sentiment  d'une circularité 
> que je ne sais comment exprimer, d'autant que ça marche (je n'en doutais 
> pas).

Ce bout de code n'est interprété qu'au tracé, lorsque l'objet est
déjà défini, et cela ne pose donc pas de problème.

> Comment colorer un plan (le quadrilatère qui le représente et qui est 
> défini par des points) ?

Si le quadrilatère est formé de quatre points i,j,k,l d'un même objet,
il doit suffire d'adapter un peu une macro comme draw_arrow
qui est

def draw_arrow(expr i,j)=
  drawarrow z[ipnt_(i)]--z[ipnt_(j)];
enddef;

z[ipnt_(i)] est le projeté du point i de l'objet.

D'où 

def dessine_quadrilatere(expr i,j,k,l)=
  fill z[ipnt_(i)]--z[ipnt_(j)]--z[ipnt_(k)]--z[ipnt_(l)]--cycle
    withcolor blue;
enddef;

On peut aussi faire quelque chose de plus général qui prend un polygone
en adaptant draw_lines.

Bon courage !

D. Roegel

