渐近线中的向量加法和旋转

渐近线中的向量加法和旋转

我不确定这里是否是发布有关渐近线的问题的正确地方,但如果不是,我可以稍后删除它。

以下是我正在使用的代码:

//sangaku.asy
unitsize(5mm);

pair A=(0,0);
pair B=(3,0);
pair C=(2,1);
pair D, E, F, G, H, I, J, K;

F = rotate(90, A)*C;
G = C + F;
I = rotate(-90, B)*C;
H = (C-B) + I;
J = rotate(90, G)*H;
/*K = (H-G) + (J-G);*/
K = rotate(-90, H) * G;
D = rotate(-90, A) * B;
E = D + B;


picture sangaku;
path vierkantac=A--C--G--F--cycle;;
path vierkantbc=C--B--I--H--cycle;;
path vierkantgh=G--H--K--J--cycle;
path vierkantab=B--A--D--E--cycle;

path driehoekae=A--B--E--cycle;
path driehoekgh=G--H--K--cycle;


pen p1=orange;
pen p2=cyan;

filldraw (sangaku, vierkantac, p1);
filldraw (sangaku, vierkantbc, p1);
draw (sangaku, vierkantgh);
draw (sangaku, vierkantab);


add(sangaku);
add(shift(-12,6)*rotate(-30)*scale(2)*sangaku);

pair positie=(2, 12);

K = (H-G) + (J-G);我注释掉的那一行给我带来了麻烦:

在此处输入图片描述

使用旋转函数我得到了正确的结果:

在此处输入图片描述

但为什么它们不应该等同呢?

答案1

在这种情况下,正确的是K = G+(H-G) + (J-G);。错误来自常见的误解,认为点和向量是相同的,而事实上它们并不相同。很容易理解其中的区别,只需再加一个坐标来标记它:它0对于向量来说,是1一个向量,对于有效点来说也是如此。然后很明显,任何向量之和(+/-)都会产生一个有效向量,两个点的差是一个向量,而要得到一个有效点,必须将该向量添加到另一个点。(点之和只有在结果中提到的额外坐标也是 时才有效1)。特别是,在注释行中K显然是两个向量 (H-G)和之和(J-G),为了使其成为一个点,必须添加另一个适当的点,在这种情况下它是G

相关内容