-
Notifications
You must be signed in to change notification settings - Fork 5
Open
Labels
enhancementNew feature or requestNew feature or request
Description
tp+
def circleCenter3Points(x1,y1,z1,x2,y2,z2,x3,y3,z3) : numreg, numreg, numreg
a = x1 * (y2 - y3) - y1 * (x2 - x3) + x2 * y3 - x3 * y2
b = (Mth::pow(x1, 2) + Mth::pow(y1, 2)) * (y3 - y2)
c = (Mth::pow(x1, 2) + Mth::pow(y1, 2)) * (x2 - x3)
d = (Mth::pow(x3, 2) + Mth::pow(y3, 2)) * (x2 * y1 - x1 * y2)
x = -b / (a * 2)
y = -c / (a * 2)
z = (z1+z2+z3)/3
return(x, y, z)
end
center := R[30..33]
center = circleCenter3Points(X1,Y1,Z1,X2,Y2,Z3,X3,Y3,Z3)LS would turn into
/MN
: CALL CIRCLECENTER3POINTS(X1,Y1,Z1,X2,Y2,Z3,X3,Y3,Z3,30,31,32) ;
/END/MN
: R[50:a]=(AR[1]*(AR[5]-AR[8])-AR[2]*(AR[4]-AR[7])+AR[4]*AR[8]-AR[7]*AR[5]) ;
: CALL MTH_POW(AR[1],2,57) ;
: CALL MTH_POW(AR[2],2,58) ;
: R[51:b]=((R[57:dvar1]+R[58:dvar2])*(AR[8]-AR[5])) ;
: CALL MTH_POW(AR[1],2,59) ;
: CALL MTH_POW(AR[2],2,60) ;
: R[52:c]=((R[59:dvar3]+R[60:dvar4])*(AR[4]-AR[7])) ;
: CALL MTH_POW(AR[7],2,61) ;
: CALL MTH_POW(AR[8],2,62) ;
: R[53:d]=((R[61:dvar5]+R[62:dvar6])*(AR[4]*AR[2]-AR[1]*AR[5])) ;
: ;
: R[54:x]=(R[51:b]*(-1)/(R[50:a]*2)) ;
: R[55:y]=(R[52:c]*(-1)/(R[50:a]*2)) ;
: R[56:z]=((AR[3]+AR[6]+AR[9])/3) ;
: ! Multiple return ;
: R[AR[10]]=R[54:x] ;
: R[AR[11]]=R[55:y] ;
: R[AR[12]]=R[56:z] ;
/ENDMetadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request