- () . , , - .
. , () . , . , , , . . , , ( , , ). . , :
COMMON/WINDOW/XMIN,YMIN,XMAX,YMAX,WINDOW
REAL XMIN(1000),YMIN(1000),XMAX(1000),YMAX(1000),WINDOW(1000)
INTEGER NWINDOW
(NWINDOW) .
, Length: (INTEGER, REAL, COMPLEX, LOGICAL CHARACTER).
, 32 . , , (_). , , , , .
, , :
INTEGER AWINDOW
REAL X1
X1 = XMIN(AWINDOW)
:
SOUBROUTINE WINDOW__ADD_TO_SELECTIONS (SELF, SHAPE)
INTEGER SELF, SHAPE
, , , , , , , .
|
|
FUNCTION CIRCLE__PICK(X0, Y0, RADIUS, X, Y)
LOGICAL CIRCLE__PICK
REAL X0, Y0, RADIUS, X, Y
. . , :
FUNCTION CREATE_WINDOW(X1, Y1, WIDTH, HEIGHT)
COMMON/WINDOW/XMIN,YMIN,XMAX,YMAX,WINDOW
REAL XMIN(1000),YMIN(1000),XMAX(1000),YMAX(1000),WINDOW(1000)
INTEGER NWINDOW
INTEGER CREATE_WINDOW
REAL X1, Y1, X2, Y2
NWINDOW = NWINDOW + 1
XMIN(NWINDOW) = X1
YMIN(NWINDOW) = Y1
XMAX NWINDOW) = X1 + WIDTH
YMAX NWINDOW) = Y1 + HEIGHT
CREATE_WINDOW = NWINDOW
RETURN
END
. () . , .
, , . , . , , . , , , :
COMMON/SHAPE/XMIN,YMIN,XMAX,YMAX,WINDOW,RADIUS,NS HAPE
REAL XMIN(1000),YMIN(1000),XMAX(1000),YMAX(1000),WINDOW(1000)
REAL RADIUS(1000)
INTEGER NSHAPE
. , . : , . ITEM, SHAPE ( 1000 ) GROUP ( 100 ). CLASSES .
COMMON/ITEM/ITEM_CLASS,ITEM_ID,NITEM
INTEGER ITEM_CLASS(1100),ITEM_ID(1100)
INTEGER NITEM/0/
COMMON/CLASSES/GROUP,BOX,CIRCLE
INTEGER GROUP/1/,BOX/2/,CIRCLE/3/
, , . , (CIRCLE):
FUNCTION CREATE_CIRCLE(X0,Y0,RADIUS0)
COMMON/WINDOW/XMIN,YMIN,XMAX,YMAX,WINDOW
ITEM, SHAPE CLASSES
INTEGER CREATE_CIRCLE
NSHAPE = NSHAPE + 1
X(NSHAPE) = X0
Y(NSHAPE) = Y0
RADIUS(NSHAPE) = RADIUS0
NITEM = NITEM + 1
ITEM_CLASS(NITEM) = CIRCLE
ITEM_ID(NITEM) = NSHAPE
CREATE_CIRCLE = NITEM
RETURN
END
. , , . (. CLASSES). , . , :
|
|
FUNCTION PICK(CLASS,ID,PX,PY)
LOGICAL PICK
LOGICAL GROUP_PICK,BOX_PICK,CIRCLE_PICK
INTEGER CLASS,ID
GOTO(100,200,300) CLASS
PICK =.FALSE.
RETURN
100 PICK = GROUP_PICK(ID,PX,PY)
RETURN
200 PICK = BOX_PICK(ID,PX,PY)
RETURN
300 PICK = CIRCLE_PICK(ID,PX,PY)
RETURN
END