[metapost] fullcircle in metapost language
José Carlos Santos
jcsantos at fc.up.pt
Fri Oct 19 16:15:56 CEST 2007
On 19-10-2007 12:55, Pierre Lorenzon wrote:
> Excuse me if this question already occured many times on the
> list but I am an occasional metapost user and did not know the
> existence of this list before today.
>
> Following metapost code :
>
> beginfig(1);
> %tracingall;
> pair A,B,C,I,Ap,Bp,Cp,As,Bs,Cs; %les points de la figure
> path Da,Db,Dc; %les bissectrices intérieures
> numeric alpha,beta,gamma; %les longueurs des côtés
> A=(0,0);
> B=(6cm,0);
> C=(2cm,6cm);
>
> %Calcul des longueurs
> a=abs(B-C);
> b=abs(C-A);
> g=abs(A-B);
> (a+b+g)*alpha = a;
> (a+b+g)*beta = b;
> (a+b+g)*gamma = g;
>
> %Les points A',B',C'
> beta*(B-Ap) + gamma*(C-Ap) = (0,0);
> gamma*(C-Bp) + alpha*(A-Bp) = (0,0);
> alpha*(A-Cp) + beta*(B-Cp) = (0,0);
>
> %Les bissectrices
> Da = A--Ap;
> Db = B--Bp;
> Dc = C--Cp;
>
> %Le centre du cercle circonscrit
> alpha*(A-I) + beta*(B-I) + gamma*(C-I) = (0,0);
>
> %Les projetés de I
> (As-I) rotated 90 = whatever*(C-B);
> (As-B) = whatever*(C-B);
> (Bs-I) rotated 90 = whatever*(A-C);
> (Bs-C) = whatever*(A-C);
> (Cs-I) rotated 90 = whatever*(B-A);
> (Cs-A) = whatever*(B-A);
>
> %Le cercle inscrit
> path cercle;
> cercle = fullcircle scaled 2*abs(As-I) shifted I;
>
> %Tracé de la figure
> draw Da;
> draw Db;
> draw Dc;
> draw cercle;
> dotlabel.bot(btex $I$ etex,I);
> dotlabel.lft(btex $A$ etex,A);
> dotlabel.rt(btex $B$ etex,B);
> dotlabel.top(btex $C$ etex,C);
> dotlabel.rt(btex $A'$ etex,Ap);
> dotlabel.lft(btex $B'$ etex,Bp);
> dotlabel.bot(btex $C'$ etex,Cp);
> dotlabel.rt(btex $A''$ etex,As);
> dotlabel.lft(btex $B''$ etex,Bs);
> dotlabel.bot(btex $C''$ etex,Cs);
>
> %Le triangle
> draw A--B--C--cycle;
> endfig;
>
> compiled perfectly a few years ago with metapost 0.64 in web2C
> 7.3.1.
>
> Today metapost version is
> MetaPost 0.641 (Web2C 7.5.4)
> kpathsea version 3.5.4
> Copyright (C) 1997-2004 AT&T Bell Laboratories.
> Kpathsea is copyright (C) 1997-2004 Free Software Foundation, Inc.
> There is NO warranty. Redistribution of this software is
> covered by the terms of both the MetaPost copyright and
> the GNU General Public License.
> For more information about these matters, see the files
> named COPYING and the MetaPost source.
> Primary author of MetaPost: John Hobby.
> Kpathsea written by Karl Berry and others.
>
> corresponding to installation of tetex 3.0 and I recieve
> following error message :
>
> This is MetaPost, Version 0.641 (Web2C 7.5.4) (mem=mpost 2005.10.11) 19 OCT 2007 13:46
> **C-Bissectrices.mp
> (C-Bissectrices.mp
>>> path
>>> 52.23541
> ! Not implemented: (path)*(known numeric).
> <to be read again>
> shifted
> l.43 ...le = fullcircle scaled 2*abs(As-I) shifted
> I;
> ?
> ! Emergency stop.
> <to be read again>
> shifted
> l.43 ...le = fullcircle scaled 2*abs(As-I) shifted
> I;
> End of file on the terminal!
>
>
> as if the circle could not be scaled and shifted ! Why ? Did
> something change in language specification ?
I don't know, but it will accept
cercle = fullcircle scaled (2*abs(As-I)) shifted I;
Best regards,
Jose Carlos Santos
More information about the metapost
mailing list