Re: Prime Error or Mine? Message #8 Posted by CompSystems on 21 Oct 2013, 12:55 p.m., in response to message #6 by toml_12953
The code with NTHROOT ready to be copied to the program editor =)
EXPORT HAT()
BEGIN
LOCAL P,Q,XP,XR,YP,YR,ZP,ZF;
LOCAL XF,YF,ZF;
LOCAL ZI,ZT,ZZ,XL,XI,XT,XX,YY;
LOCAL X1,Y1;
Xmin:=0;Xmax:=320;
Ymin:=0;Ymax:=240;
RECT();
P:=160;
Q:=100;
XP:=144;
XR:=1.5*PI;
YP:=56;
YR:=1;
ZP:=64;
XF:=XR/XP;
YF:=YP/YR;
ZF:=XR/ZP;
FOR ZI FROM -Q TO Q-1 DO
IF ZI >= -ZP AND ZI <= ZP
THEN
ZT:=ZI*XP/ZP;
ZZ:=ZI;
XL:=IP(0.5+2 NTHROOT (XP*XP-ZT*ZT));
FOR XI FROM -XL TO XL DO
XT:=2 NTHROOT (XI*XI+ZT*ZT)*XF;
XX:=XI;
YY:=(SIN(XT)+0.4*SIN(3*XT))*YF;
X1:=XX+ZZ+P;
Y1:=YY-ZZ+Q;
PIXON(X1,Y1,#FF0000h);
IF Y1 <> 0
THEN
LINE(X1,Y1-1,X1,0,#FFFFFFh)
END;
END;
END;
END;
WAIT;
END;
for CAS MODE #FF0000h => RGB() =(
HAT():=
BEGIN
LOCAL P,Q,XP,XR,YP,YR,ZP,ZF;
LOCAL XF,YF,ZF;
LOCAL ZI,ZT,ZZ,XL,XI,XT,XX,YY;
LOCAL X1,Y1;
Xmin:=0;Xmax:=320;
Ymin:=0;Ymax:=240;
RECT();
P:=160;
Q:=100;
XP:=144;
XR:=1.5*PI;
YP:=56;
YR:=1;
ZP:=64;
XF:=XR/XP;
YF:=YP/YR;
ZF:=XR/ZP;
FOR ZI FROM -Q TO Q-1 DO
IF ZI >= -ZP AND ZI <= ZP
THEN
ZT:=ZI*XP/ZP;
ZZ:=ZI;
XL:=IP(0.5+2 NTHROOT (XP*XP-ZT*ZT));
FOR XI FROM -XL TO XL DO
XT:=2 NTHROOT (XI*XI+ZT*ZT)*XF;
XX:=XI;
YY:=(SIN(XT)+0.4*SIN(3*XT))*YF;
X1:=XX+ZZ+P;
Y1:=YY-ZZ+Q;
PIXON(X1,Y1,RGB(0,0,0) );
IF Y1 <> 0
THEN
LINE(X1,Y1-1,X1,0,RGB(255,255,255))
END;
END;
END;
END;
WAIT;
END;
Edited: 21 Oct 2013, 1:53 p.m.
|