Σάββατο 26 Απριλίου 2025

Drawing Inductors

The task:

Making a subroutine for drawing an inductor with n parts, at a length of twips and at an angle in rad.



SMOOTH ON
CLS 15, 0
BACK {CLS 15,0}
PEN 0
DOUBLE
REPORT 2, "DRAWING INDUCTOR"
NORMAL
A=-PI/16
AA=0
DATA 1000, 6000, 12000, 0
FOR M=1000 TO 8000 STEP 2000
MOVE 2000+AA, 6000+M
INDUCTOR(4, M, 0+A)
INDUCTOR(8, M, -PI/2+A)
INDUCTOR(6, M, -PI+A)
INDUCTOR(3, M, PI/2+A)
A+=PI/3
AA+=NUMBER
NEXT
PUSH KEY$
DROP
SUB INDUCTOR(PARTS, LE, A)
LOCAL SINGLE M=LE/6000*240
LOCAL SINGLE B=LE/(PARTS+4)*.4
LOCAL SINGLE C=B-20*PARTS*LE/6000
WHILE LE>(4*B+2*PARTS*(B-C))
C-=15
IF C<M THEN B*=1.2: c=B/1.3
END WHILE
WIDTH 3 {DRAW ANGLE A, B}
STEP ANGLE A, B
FOR I=1 TO PARTS
ARC(TRUE, B, A)
STEP ANGLE A, B
STEP ANGLE A, -C
ARC(FALSE, C, A)
STEP ANGLE A, B-C
NEXT
ARC(TRUE, B, A)
STEP ANGLE A, B
WIDTH 3 {DRAW ANGLE A, B}
END SUB
SUB ARC(UP AS BOOLEAN, AR AS SINGLE, ARG AS SINGLE)
LOCAL KK=-ARG, K=KK
WIDTH 3 {
IF UP ELSE K+=PI
CIRCLE AR, 1, PEN, 0-K, PI-K;
}
END SUB


Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου

You can feel free to write any suggestion, or idea on the subject.