Диссертация (1137096), страница 59
Текст из файла (страница 59)
o r d i n a l ( ) ] ) &&(g et Y ( ) >main . b21+ a r e a . g e t R a d i u s X ( ) ∗main . w a l l C o e f [ s i t u a t i o n . o r d i n a l ( ) ] )&&(g et Y ( ) <main . b22−a r e a . g e t R a d i u s X ( ) ∗main . w a l l C o e f [ s i t u a t i o n .
o r d i n a l ( ) ] ) &&( c r o s s _ e x i t == f a l s e ) ) | | ( ( g et X ( ) <main . a0 ) &&( c r o s s _ e x i t ==f a l s e ) ) &&((g et X ( ) >main . a0 +main . l e n 1 ) &&( c r o s s _ e x i t == f a l s e ) );i f ( _e == comeback ) r e t u r n( ( c r o s s _ e x i t == t r u e )&&(g et X ( ) >main . a0 + a r e a . g e t R a d i u s X ( ) ∗main . w a l l C o e f [ s i t u a t i o n . o r d i n a l ( ) ] ) &&(g et X ( ) <main . a0 +main . l e n 1 / 2 ) ) | | ( ( c r o s s _ e x i t ==t r u e ) &&(g et X ( ) <main .
a0 +main . l e n 1−a r e a . g e t R a d i u s X ( ) ∗main . w a l l C o e f [ s i t u a t i o n . o r d i n a l ( ) ] ) &&(g et X ( ) >main . a0 +main . l e n 1 / 2 ) );r e t u r n s u p e r . t e s t C o n d i t i o n O f ( _e ) ;}930935@ O v er r i d e@ A n y Lo g i cI n t er n al Co d eg en A P Ip u b l i c v o i d e x e c u t e A c t i o n O f ( E v e n t C o n d i t i o n _e ) {i f ( _e == s t _ d i s o r i e n t e d ) {E v e n t C o n d i t i o n s e l f = _e ;stop () ;p e r so n a l . se t Li n e C o l o r ( green ) ;p e r s o n a l .
s e t L i n e S t y l e ( LINE_STYLE_SOLID ) ;940 s e t _ s t a t u s _ c h a n g e ( f a l s e ) ;;return ;}i f ( _e == s t _ i n j u r e d ) {945E v e n t C o n d i t i o n s e l f = _e ;950personal . setLineColor ( blue ) ;p e r s o n a l . s e t L i n e S t y l e ( LINE_STYLE_DASHED ) ;set_status_change ( false ) ;;return ;}i f ( _e == s t _ k i l l e d ) {E v e n t C o n d i t i o n s e l f = _e ;955stop () ;area . s et F i l l Co l o r ( red ) ;personal . setRadius (0) ;personal .
setVisible ( false ) ;960 s e t _ s t a t u s _ c h a n g e ( f a l s e ) ;;return ;}i f ( _e == t _ c h a n g e ) {965E v e n t C o n d i t i o n s e l f = _e ;t _ 2 = t _ e x p l . g e t ( n _ ex p l −1)+main . k ap p a_ 2 ∗( t _ 1−t _ e x p l . g e t ( n _ ex p l −1) ) ;t _ 3 = t _ e x p l . g e t ( n _ ex p l −1)+main .
k ap p a_ 3 ∗( t _ 1−t _ e x p l . g e t ( n _ ex p l −1) ) ;set_expl ( false ) ;970 ;return ;}i f ( _e == s i t _ c h a n g e _ 2 ) {E v e n t C o n d i t i o n s e l f = _e ;975set_situation ( Situation . active ) ;;return ;}980i f ( _e == s i t _ c h a n g e _ 1 ) {E v e n t C o n d i t i o n s e l f = _e ;985990995set_situation ( Situation . extinction ) ;;return ;}i f ( _e == s i t _ c h a n g e _ 0 ) {E v e n t C o n d i t i o n s e l f = _e ;s e t _ s i t u a t i o n ( Si t u at io n . lack ) ;;return ;}i f ( _e == z e t a ) {E v e n t C o n d i t i o n s e l f = _e ;set_status ( Status . alive ) ;265personal .
setLineColor ( black ) ;p e r s o n a l . s e t L i n e S t y l e ( LINE_STYLE_SOLID ) ;1000 s e t V e l o c i t y ( v ) ;moveTo ( x _ e x i t , y _ e x i t ) ;;return ;}1005i f ( _e == remove ) {E v e n t C o n d i t i o n s e l f = _e ;main . s a v e d ++;main . r e m o v e _ p e r s o n ( t h i s ) ;1010 ;return ;}i f ( _e == c r o s s ) {E v e n t C o n d i t i o n s e l f = _e ;1015set_cross_exit ( true ) ;;return ;}1020i f ( _e == comeback ) {E v e n t C o n d i t i o n s e l f = _e ;1025set_cross_exit ( false ) ;;return ;}s u p e r . e x e c u t e A c t i o n O f ( _e ) ;}1030/ ∗∗ I n t e r n a l c o n s t a n t , s h o u l d n ’ t be a c c e s s e d by u s e r ∗ /@ A n y Lo g i cI n t er n al Co d eg en A P Ip r o t e c t e d s t a t i c f i n a l s h o r t _STATECHART_ELEMENT_NEXT_ID_xjal = 0 ;/ / Функции1035/ ∗∗∗ Функция расчета ко л и ч ест в а живых агентов в окружении∗/1040intchi () {int i = 0;f o r ( P e r s o n p : main .
p e r s o n ) {1045i f ( ( d i s t a n c e T o ( p ) <=main . e t a ∗Math . s q r t ( s _ t / Math . P I ) ) &&(p . s t a t u s ! = S t a t u s . k i l l e d ) ) {i ++;}}return i ;1050}/ ∗∗∗ Функция расчета суммы площадей го р и зо н т а л ь н ых п р о екц и й живых агентов в окружении∗/1055doublechi_s () {double i s = 0;f o r ( P e r s o n p : main . p e r s o n ) {i f ( ( d i s t a n c e T o ( p ) <=main .
e t a ∗Math . s q r t ( s _ t / Math . P I ) ) &&(p . s t a t u s ! = S t a t u s . k i l l e d ) ) {is = is + p . s_t ;}}1065 r e t u r n i s ;}10601070/ ∗∗∗ Индикация выхода и з помещения с л е в а∗/booleanisOut_left (1075 d o u b l e r ;double a , b ;double phi ;MyVector v1 ;MyVector v2 ;) {2661080 a = main . a r c _ l e f t . g e t R a d i u s Y ( ) ;b = main . a r c _ l e f t . g e t R a d i u s X ( ) ;v1 = new MyVector ( g et X ( ) , g et Y ( ) , main . a r c _ l e f t . g et X ( ) , main . a r c _ l e f t .
g et Y ( ) ) ;v2 = new MyVector ( main . a0 , main . b11 , main . a r c _ l e f t . g et X ( ) , main . a r c _ l e f t . g et Y ( ) ) ;p h i = MyVector . a n g l e R a d i a n ( v1 , v2 ) ;1085 r = a∗b / Math . s q r t ( Math . pow ( b∗Math . c o s ( p h i ) , 2 ) +Math . pow ( a∗Math . s i n ( p h i ) , 2 ) ) ;i f ( d i s t a n c e T o ( main . a r c _ l e f t .
g et X ( ) , main . a r c _ l e f t . g et Y ( ) ) >= r ) {return true ;} else {return false ;1090 }}1095/ ∗∗∗ Индикация выхода и з помещения сп р а в а∗/booleanisOut_right () {1100 d o u b l e r ;double a , b ;double phi ;MyVector v1 ;MyVector v2 ;1105 a = main . a r c _ r i g h t . g e t R a d i u s Y ( ) ;b = main . a r c _ r i g h t . g e t R a d i u s X ( ) ;v1 = new MyVector ( g et X ( ) , g et Y ( ) , main . a r c _ r i g h t . g et X ( ) , main .
a r c _ r i g h t . g et Y ( ) ) ;v2 = new MyVector ( main . a0 +main . l e n 1 , main . b22 , main . a r c _ r i g h t . g et X ( ) , main . a r c _ r i g h t . g et Y ( ) ) ;p h i = MyVector . a n g l e R a d i a n ( v1 , v2 ) ;1110 r = a∗b / Math . s q r t ( Math . pow ( b∗Math .
c o s ( p h i ) , 2 ) +Math . pow ( a∗Math . s i n ( p h i ) , 2 ) ) ;i f ( d i s t a n c e T o ( main . a r c _ r i g h t . g et X ( ) , main . a r c _ r i g h t . g et Y ( ) ) >= r ) {return true ;} else {return false ;1115 }}/ / Областиp u b l i c ViewArea _ o r i g i n _ V A = new ViewArea ( t h i s , " [ Нач . ко о р ди н ат ] " , 0 , 0 , ViewArea . TOP_LEFT , ViewArea . SPECIFIED_ZOOM , 1 , 1 0 0 , 100 ) ;@ O v er r i d e1120@ A n y Lo g i cI n t er n al Co d eg en A P Ip u b l i c i n t g e t V i e w A r e a s ( Map< S t r i n g , ViewArea > _ o u t p u t ) {i f ( _ o u t p u t != n u l l ) {_ o u t p u t .
p u t ( " _origin_VA " , t h i s . _origin_VA ) ;}1125r e t u r n 1 + super . getViewAreas ( _output ) ;}@ A n y Lo g i cI n t er n al Co d eg en A P Ip r o t e c t e d s t a t i c f i n a l F o n t _ t e x t _ F o n t = new F o n t ( " S a n s S e r i f " , 0 , 10 ) ;@ A n y Lo g i cI n t er n al Co d eg en A P I1130p r o t e ct ed s t a t i c f i n a l Font _text1_Font = _ t ex t _ F o n t ;@ A n y Lo g i cI n t er n al Co d eg en A P Ip r o t e ct ed s t a t i c f i n a l Font _text2_Font = _ t ex t _ F o n t ;@ A n y Lo g i cI n t er n al Co d eg en A P Ip r o t e ct ed s t a t i c f i n a l Font _text3_Font = _ t ex t _ F o n t ;1135@ A n y Lo g i cI n t er n al Co d eg en A P Iprotected s t a t i c f i n al int _personal = 1;@ A n y Lo g i cI n t er n al Co d eg en A P Iprotect ed s t a t i c f i n al i n t _area = 2;@ A n y Lo g i cI n t er n al Co d eg en A P I1140p r o t e c t e d s t a t i c f i n a l i n t _person = 3;@ A n y Lo g i cI n t er n al Co d eg en A P Iprotected s t a t i c f i n al int _pedestrian = 4;@ A n y Lo g i cI n t er n al Co d eg en A P Iprotected s t a t i c f i n al int _rectangle_par = 5;1145@ A n y Lo g i cI n t er n al Co d eg en A P Iprotected s t a t i c f i n al int _text = 6;@ A n y Lo g i cI n t er n al Co d eg en A P Iprotected s t a t i c f i n al int _rectangle_var = 7;@ A n y Lo g i cI n t er n al Co d eg en A P I1150protected s t a t i c f i n al int _text1 = 8;@ A n y Lo g i cI n t er n al Co d eg en A P Iprotected s t a t i c f i n al int _rectangle_event = 9;@ A n y Lo g i cI n t er n al Co d eg en A P Iprotected s t a t i c f i n al int _text2 = 10;1155@ A n y Lo g i cI n t er n al Co d eg en A P Iprotected s t a t i c f i n al int _rectangle_func = 11;@ A n y Lo g i cI n t er n al Co d eg en A P Iprotected s t a t i c f i n al int _text3 = 12;1160/ ∗∗ I n t e r n a l c o n s t a n t , s h o u l d n ’ t be a c c e s s e d by u s e r ∗ /@ A n y Lo g i cI n t er n al Co d eg en A P I267protected s ta ti c1165f i n a l i n t _SHAPE_NEXT_ID_xjal = 1 3 ;/ ∗∗∗ Идентификатор группы p r e s e n t a t i o n в е р х н е г о ур о в н я∗/@ A n y Lo g i cI n t er n al Co d eg en A P Iprotected s t a t i c f i n al int _presentation = 0;11701175@ A n y Lo g i cI n t er n al Co d eg en A P Ip u b l i c boolean i s P u b l i c P r e s e n t a t i o n D e f i n e d ( ) {return true ;}/ ∗∗∗ Идентификатор группы i c o n в е р х н е г о ур о в н я∗/@ A n y Lo g i cI n t er n al Co d eg en A P Ip r o t e c t e d s t a t i c f i n a l i n t _ i c o n = −1;1180/ ∗∗∗ <i >П о л ь зо в а т ел ь не должен вызывать этот метод </ i >1185∗/@ A n y Lo g i cI n t er n al Co d eg en A P Ip r i v a t e v o i d _ p e r s o n a l _ S e t D y n a m i c P a r a m s _ x j a l ( S h ap eO v al s h a p e ) {shape .
s e t R a d i u s (delta1190 ) ;}S h ap eO v al p e r s o n a l ;1195/ ∗∗∗ <i >П о л ь зо в а т ел ь не должен вызывать этот метод </ i >∗/@ A n y Lo g i cI n t er n al Co d eg en A P Ip r i v a t e v o i d _ a r e a _ S e t D y n a m i c P a r a m s _ x j a l ( S h ap eO v al s h a p e ) {1200shape . s e t R a d i u s (Math . s q r t ( s _ t / Math .