次のコードがあります:
pair a; pair b; pair c;
pickup pencircle scaled 0.2pt;
a = (0, 4cm); b = (-2cm, 0); c = (1cm, 0);
draw a -- b -- c -- cycle;
pair p; pair q; pair r; pair d; pair m; pair n;
p = whatever[b, c]; a - p = whatever * (b - c) rotated 90;
q = whatever[c, a]; b - q = whatever * (c - a) rotated 90;
r = whatever[a, b]; c - r = whatever * (a -b) rotated 90;
d = whatever[a, p] = whatever[b, q]; % orthocenter
n = 1/4(a + b + c + d); % remarkably...
m = d rotatedabout(n, 180); % M is also the circumcentre
path circumcircle;
circumcircle = fullcircle scaled 2 abs(m - a) shifted m;
draw circumcircle;
pair l;
pickup pencircle scaled 2pt;
drawdot m;
pickup pencircle scaled 0.2pt;
%draw a -- ((a -- m) intersectionpoint (b -- c));
外心を計算することはできますし、うまくいきます。しかし、最後のコメント行をコメント解除すると、パスが交差しないことがわかります。BCAM
との交差計算が拡張されていないということでしょうか? キーワードで管理できると思いますがshifted
、方法がわかりません。どなたか助けていただければ幸いです。
答え1
最後の行を次のように変更することができました:
draw a -- (a -- (a - 100(a - m))) intersectionpoint (b -- c);
そして、行を取得します。intersectionpoint
動作させるには、行を延長する必要があるようです。
答え2
以前のコードと同じスタイルに従いたい場合は、次のようにすることもできます。
pair q ; q = whatever[a,m] = whatever[b,c] ;
draw a -- q ;