1樓:簡弘懿良豐
下面是我的思路,儘量用matlab語言敘述的,方便你作圖。
假設:(x1,y1,
z1),(x2,y2,
z2),(x3,
y3,z3),(x0,y0,z0),r,(a,b,c,d)均已知。
法向量(a,b,c)
歸一化後,設
單位向量
k=[a
bc]'/sqrt(a^2+b^2+c^2)。設單位向量i=[x1-x0
y1-y0
z1-z0]'/sqrt((x1-x0)^2+(y1-y0)^2+(z1-z0)^2),設j=k
×i(matlab裡的向量叉乘表示為j=cross(k,i)),則亦為單位向量。且i,j和k滿足
右手定則
,可立為新座標系。
則t=[ijk]
為正交矩陣
,而且是座標旋轉的矩陣,把[1
00]'變為i,[0
10]'變為j,[0
01]'變為k。
給定一個角度theta,如下計算式
[x0y0
z0]'+t*[r*cos(theta)
r*sin(theta)
0]'即為該圓的
引數方程
,把theta取個0到2*pi的迴圈即可畫出此圓。
不明白可以追問。
2樓:佔芷波藤蝶
首先這三個點肯定可以確定一個平面,還可以確定一條到這三個點距離都相等的直線。
那麼,一個平面和一條直線的交點,就一定是唯一的圓心。
我現在的想法是:
1、設三點確定的平面是z=a1x+b1y+c1,帶入三個點的座標,可以得出這個平面。
2、r^2=(x-x1)^2+(y-y1)^2+(z-z1)^2r^2=(x-x2)^2+(y-y2)^2+(z-z2)^2r^2=(x-x3)^2+(y-y3)^2+(z-z3)^2然後求出
3、z=a1x+b1y+c1
z=a2x+b2y+c2
z=a3x+b3y+c3
這樣求出xyz
只要你回去三元一次方程,就可以解了。
求函式zx2y3當x2,y1,x002,y
az ax 2xy 3 az ay 3x 2y 2得到dudz 2xy 3dx 3x 2y 2dy將x 2,y 1,zhi daox 0.02,y 0.01 版dx x 0.02,dy y 0.01 代入得到 dz 2 2 1 0.02 3 4 1 0.01 0.04f x x,y y f x,y ...
若一次函式y kx b經過點 x1,y1x2,y2 ,當x1x2時y1y2,影象經過第二象限,則k,b所取值的符號
x1y2得斜率k 0,影象經過第二象限,得在y軸上的截距b 0 k 0,b正負都有可能 一次函式y kx b過 x1,y1 x2,y2 求b和k的值 用x1y1x2y2表示 解由題知 y1 kx1 b y2 kx2 b 兩式相減得k x1 x2 y1 y2 即k x1 x2 y1 y2 把k x1 ...
給定平面任意兩點的座標(x1,y1)和(x2,y2)求這兩點之間的距離(保留兩位小數)輸出形式兩點間的距離
c語言程式如下 include include int main float x1,y1 float x2,y2 float distance float x,y x fabs x1 x2 y fabs y1 y2 distance sqrt x x y y printf 2f n distance...