27 12
发新话题
打印

过三点画圆-请高手帮助

过三点画圆-请高手帮助

公式思路:过三个低点画圆弧
这个公式需要两条线。有时是这一条线满足过三点的条件,有时是另一条。。。
请高手改为只有一条线的
说明:由于纵轴和横轴的单位不同,图形看起来象椭圆
附件: 您所在的用户组无法下载或查看附件

TOP

公式      
附件: 您所在的用户组无法下载或查看附件

TOP

图           
附件: 您所在的用户组无法下载或查看附件

TOP

帮你顶,问题一看就很麻烦的,等那个高手出手。

TOP

这样处理
复制内容到剪贴板
代码:
z:zig(4,n);zf:=refx(ref(z,1)<ref(z,2) and z>ref(z,1),1);
tt:=BARSLAST(z=l);
tend:=DATACOUNT-tt[DATACOUNT-1]-1;
dd:=zf;
sd:=sum(dd,0);
sdd:=sd[datacount]-sd+1;
wx1:=barssince(sdd=k);
wx2:=barssince(sdd=k-1);
wx3:=barssince(sdd=k-2);
ry1:=hhv((wx1=0)*L,0);
ry2:=hhv((wx2=0)*L,0);
ry3:=hhv((wx3=0)*L,0);
rx2:=hhv((wx2=0)*wx1,wx1+1);
rx3:=hhv((wx3=0)*wx1,wx1+1);
x2:=rx2[datacount];
x3:=rx3[datacount];
y1:=ry1[datacount];
y2:=(ry2[datacount]-ry1[datacount]);
y3:=(ry3[datacount]-ry1[datacount]);
xy:=POW(x2,2)+POW(y2,2);
e:=(x3*xy/x2-(x3*x3+y3*y3))/(y3-x3*y2/x2);
d:=-(y2*e+xy)/x2;
y1:=POW((d*d+e*e)/4-POW((wx1+d/2),2),0.5);
y2:=-POW((d*d+e*e)/4-POW((wx1+d/2),2),0.5);
c1:=ref(L,wx1)-ref(y1,wx1);
up:=y1+c1;
c2:=ref(L,wx1)+ref(y1,wx1);
dw:=y2+c2;

out1:=abs(z[tend]-up[tend])<0.01;
out2:=abs(z[tend]-dw[tend])<0.01;
out:if(out1,up,if(out2,dw,0)),COLORMAGENTA;
附件: 您所在的用户组无法下载或查看附件

TOP

谢谢版主!

TOP

谢谢hx817老师!

TOP

实在敬佩这么难的命题也能解决。一直想以某一点为圆心画半径=R的整个圆线,可始终不行。您有空试一试好吗?

TOP

敬佩hx817老师!

敬佩hx817老师!
高手!
附件: 您所在的用户组无法下载或查看附件

TOP

引用:
lhl311 于 2004-12-18 11:30 写道:
敬佩hx817老师!
高手!
高手是 bajatje ,我只是帮他过滤了一个条件

整个公式完成了飞狐画线(三点画线)的自动功能

TOP

谢谢老师!

TOP

厉害。啊啊

TOP

厉害。啊啊

TOP

请 bajatje 讲讲"过三点画圆"的使用方法吧。

TOP

谢谢!!!

TOP

ok

TOP

谢谢

TOP

谢谢!

TOP

请 bajatje 讲讲"过三点画圆"的使用方法吧。

TOP

佩服

TOP

登泰山而小天下
咱一眼望去滿是山
不會 也要頂
至誠能勝天下至偽
至拙能勝天下至巧

TOP

不能通过啊。

TOP

z:zig(4,n);z--未定义标识符~
哪位老师帮忙解决~谢谢~

TOP

不能通过啊。

TOP

 27 12
发新话题