2012: ©yÄõ°ª¤¤ EJS ª«²z±Ð¾Ç°Êµe³]­p¤u§@§{(2012/04/02-2012/06/15)(2012/04/02-2013/11/02) (±Ð®v: ¶À ºÖ©[)
µn¤J
¥DÃD¤jºõ

ÂI¿ï½Òµ{¨C­Ó°Ï¬q¥ªÃä¥i¥H¼g¤U­Ó¤H°w¹ï¸Ó°Ï¬qªºµ§°O¡AÂI¿ï½Òµ{¸ê·½³sµ²®É,ºô­¶¤W¤è³sµ²«á¤]¦³¬Û¦P¹Ï®×¡A¥i¥Hµù°O°w¹ï¸Ó¸ê·½ªºµ§°O¡D­YÂI¿ï¥»ºô­¶¤W¤è¹Ï®×«h¥i°O¿ý°w¹ï¥»½Òµ{ªºµ§°O. Åwªï¦h¥[§Q¥Î¡I
4 ­Ó¤l½Òµ{¬[ºc:
(0)
½Òµ{¤½§i°Ï

Google ¿é¤J EJS download ´N¥i§ä¨ì³Ì·sª©¥»¤U¸ü³sµ²

°Êµe¼ÒÀÀ³]­p¤T³¡¦±:

  1. ¯u:­º¥ý­n¨D¼ÒÀÀ¤º®e¥²¶·¥¿½TµL»~
  2. µ½:µM«á°l¨D¨Ï¥ÎªÌ¨Ï¥Îªº¤è«K©Ê
  3. ¬ü: ³Ì«á§ïµ½¼ÒÀÀªº¬üÆ[

ª«²z¬ì¦Û¥Ñ³nÅé±À¼s¬ã²ß
 
¦¹¦¸¤u§@§{ªº¥Øªº¦b©óÅý °Ñ»PªÌÁA¸Ñ
  1. ¦p¦ó¹B¥Î²{¦³EJS¼ÒÀÀµ{¦¡©ó±Ð¾Ç/¦p¦ó­×§ï¥H²Å¦X­Ó¤H±Ð¾Ç»Ý¨D
  2. ¦p¦ó§Q¥ÎEJS ³]­p±Ð¾Ç°Êµe: EJS ¥»¨­ªº³]­p»P¬ì¾Ç¸ÑÃDªºÃö³s
  3. ¦p¦ó§Q¥ÎEJS §@¬°±Ð¾Ç¤u¨ãModeling Tool
¥H¤W¥Ø¼Ð¬°¥D,¨Ã¥BÅý°Ñ»PªÌ¦³¹ê»Ú¾Þ§@ªº¸gÅç.
¤u§@§{µ²§ô«áÅwªï¦U¦ìÄ~Äò§Q¥Î¥»¶é¦a °Q½×¬ÛÃö°ÝÃD¡I


³]­pª«²z¼ÒÀÀ°Êµeªº¨BÆJ
  • ¥ý´£¥X¼ÒÀÀºc·Q
  • ¤ÀªR¼ÒÀÀªº¬ÛÃöª«²z:©w¸q¬ÛÃöÅܼÆ, §ä¥XÅܼƶ¡Ãö«Y¦¡©ÎÅܼÆÀH®É¶¡©ÎªÅ¶¡ªº·L¤ÀÃö«Y(¥ý¤F¸Ñ°ÝÃDªº®ÉªÅ¤Ø«×scale)
  • ³z¹Lejs ©w¸qÅܼÆ,¿é¤JÃö«Y¦¡ ,¥Ñ EJS²£¥Íµ{¦¡½X
  • Æ[¹î²£¥Íªº¼ÒÀÀ ­×¥¿¥i¯àªº¿ù»~ ©Î­×§ï¤¶­±³]­p
Theo Jansen¡¬s mechanism

Åwªï¨ì¥H¤U³sµ²°Ñ¦Ò¬ÛÃöª«²z¼ÒÀÀ
¹B°Ê¾Ç   °Ê¤O¾Ç   ®¶°Ê©Mªi°Ê   ¼ö¤O¾Ç   ¥ú¾Ç    ¹q¤l¾Ç   ªñ¥Nª«²z   ¹qºÏ¾Ç   ¼Æ¾Ç
¥u­n¬O ª«²z°ÝÃD°Q½×°Ï ªºµù¥UªÌ,µn¤J«á¾\Äý¼ÒÀÀ®É§¡¥i¬Ý¨ì¤U¸ü«ö¶s
¥]§t¼Æ¦Ê­Óª«²z¼ÒÀÀ §¡¥i¤U¸ü, §Q¥ÎEJS»s§@ªº ³£¥i¬Ý¨ì­ì©l»s§@¸ê®Æ¨Ã¥i­×§ï.
¤]Åwªï°Ñ¦Ò
Physlet ª«²z°Êµe®w(¥]§t¶W¹L800­Óª«²z°Êµe)
©Î­Ó¤Hªº°Êµe
­^¤åºô¯¸ NTNUJAVA


(1)
Easy Java Simulation

¦w¸ËEasy Java Simulation ªº¨BÆJ:

  1. ¤U¸ü³Ì·sª© EJS µ{¦¡ (¤U¸ü«á¸ÑÀ£ÁY¨ìC:\©ÎD:\)
  2. ¤U¸ü«á¸ÑÀ£ÁY¨ì¥ô¦ó¤@­Ó¥Ø¿ý¤U ¨Ò¦p c:\ («h·|²£¥Íc:\Ejs ªº¥Ø¿ý) »¡©ú¼v¤ù
  3. ¶i¤J Ejs ¥Ø¿ý ÂI¿ï EjsConsole.jar «K¥i°õ¦æ Easy Java Simulation (ªì¦¸¦w¸Ë®É·|­n¨D¿é¤J­Ó¤H©m¦Wµ¥°ò¥»¸ê®Æ ¥H«K¿é¤J²£¥Íªº°ÊµeÀɤ¤)
­Y¬O§AÂI¿ï EjsConsole.jar µo²{±Ò°Êªº¬O ¸ÑÀ£ÁYµ{¦¡ ¹Ï®×¤]Åܦ¨¸ÑÀ£ÁYµ{¦¡ªº¹Ï®×
ªí¥Ü§Aªº¹q¸£¨S¦³¤ä´©Java Run Time ©ÎªÌ¦]¬°«á¨Ó¦w¸Ë¸ÑÀ£ÁYµ{¦¡±N .jar ÀÉ®×Åܦ¨¦Û°Ê±Ò°ÊÀ£ÁYµ{¦¡
ÂI¿ï³sµ² ÂsÄý¾¹¬O§_¤ä´©java´ú¸Õ  ­YµLªk¬Ý¨ìjavaµ{¦¡½Ð¨Ì·Ó»¡©ú¤U¸ü³Ì·sª©java run time ©Î
ÂI¿ï ³Ì·sª© Java Run time ªº³sµ² ¤U¸ü«á¦w¸Ë Jave Run Time À³¸Ó´N¥i¥H¤F¡I

©ÎªÌÆ[¬Ý ÂI¿ïEjsConsole.jar «o±Ò°Ê¸ÑÀ£ÁYµ{¦¡ªº¸Ñ¨M¤èªk¡]¼v¤ù¡^

(¥»½Òµ{¤¤¼v¤ù¥D­n¬O®Ú¾Ú2006¦~ª©¥»©çÄá,¤U¸üª©¥»©M±Ð¾Ç¼v¤ù¤º®eµy¦³®t²§ )

ª©ªº½d¨Ò²©ö¼ÒÀÀ°Êµe³]­p»s§@Àô¹Ò Easy Java Simulation ¨Ï¥Î»¡¼v¤ù¡]Àɮ׸û¤j,¦³Án­µ¡^



(2)
ª`·N¨Æ¶µ»P¬ÛÃö¸ê®Æ

¨Ï¥Î EJS ±`¨£¿ù»~

  1. ¨Ï¥ÎÅܼƫe§Ñ°O¥ý©w¸qÅܼÆ
  2. Àx¦sÀɦW¥H­^¤å¦r¥À¶}©l,ÀɦW¥Î­^¤å¦r¥À»P¼Æ¦r(¤£¥i¥Î¼Æ¦r°_ÀY)
    ÀɦW½Ð¤£­n²K¥[ ¤¤¤å©Î¯S®í²Å¸¹(§tªÅ¥Õ)
    ÀɦW½Ð¤Å¨Ï¥Îfor,if, switch, true,false.int,double,final,... + - * / % | & () [] {} µ¥µ{¦¡ªºÃöÁä¦r
  3. ¾ã¼Æ»P¾ã¼Æ¬Û­¼°£ µ²ªG¬O¾ã¼Æ  1/2  µ²ªG¬O 0 , 1./2 ©Î 1/2. ©Î 1./2. µ²ªG¤~¬O 0.5

°Ñ¼Æºt¤ÆÃö«Y¤¤ °£¤Fµ¥¥[³t«×¥H¥~ ¨ä¾lªº±¡ªp½Ð¿ï¥Î Runge-kutta ¤­¶¥»~®tªº¼Æ­È¤èªk

½Ð¤£­n¥Î¹w³]ªº Midpoint ¤T¶¥»~®tªº¤èªk

Java µ{¦¡°ò¥»ÅÞ¿è«ü¥O

if¡]ÅÞ¿è¹Bºâ¡^«ü¥O;¡@¨Ò¦p if(x>5 || x<3)y=2; ¤]¥i¼g¦¨ if((x-5)*(y-3)<0)y=2;

if¡]ÅÞ¿è¹Bºâ¡^«ü¥O¡F
else if¡]ÅÞ¿è¹Bºâ¡^«ü¥O;
else «ü¥O;

for¡]­«½Æ°õ¦æ«e«ü¥O¡@¡F¡@Ä~Äò°õ¦æÅÞ¿è§PÂ_¡@¡F¡@°õ¦æ«á«ü¥O¡^­«½Æ°õ¦æ«ü¥O¡F

¨ä¤¤«ü¥O¤£¤î¤@¦æ®É¥i¥H¥Î¡@¤j¬A©·¥]¦í¡A´À¥N¤@­Ó«ü¥Oªº¦ì¸m¡I

if(x>3) y=1;
else y=2;

if(x>3)y=1;
else if(x<1)y=0;
else y=1.5;

if(x>3){

 y=1;
 z=2;
}else {
 y=2;
 z=3;
}

«ØÄ³ ¤@¥¹¨Ï¥Î¬A©· ¥ý¼g¦n§¹¾ã¬A©·¹ï ¤§«á¦b¤º³¡²K¥[¤º®e,¦p
if(x>3){

}else{

}

¥ý¼g¦n¥H¤Wµ²ºc,¤§«á¦b¬A©·¤º¼g«ü¥O
³o¼Ë¤ñ¸û¤£·|§Ñ°O²K¥[µ²§Àªº¬A©·
¤×¨ä»Ý­n¦n´X¼hªº®É­Ô ¤S¦p
for(int i=0;i<n;i++){
 for(int j=i+1;j<n;j++){
 
 }
}

°²³] x=5; y=3; ­n±N¨â¼Æ­È¹ï½Õ ¤£¥i¥H¶È¼g

x=y; // ¦¹®É¤w¸g±Nyªº­È©ñ¤J x ¤º,¤]´N¬O x,y ªº­È³£¬O 3
y=x; // ¦¹«ü¥O¬O­n±N xªº­È¡]3¡^©ñ¤J y¤º , ¨ä¹ê ®Ú¥»¨S¦³·sªº§@¥Î

À³¸Ó­n¥ý©w¸q¥t¤@­ÓÅܼƼȮÉÀx¦s¨ä¤¤¤@­Ó­È ¨Ò¦p©w¸q z
z=x;// ±N x ªº­È ©ñ¤J z, ¦¹®É z °O¾ÐÅ骺­È¬O5
x=y; // ±N yªº­È©ñ¤J x, ¦¹®Éx ªº­ÈÅܦ¨ 3
y=z; // ±Nzªº­È©ñ¤J y, ¦]¦¹y Åܦ¨ 5
¥H¤W¨BÆJ´N¹F¨ì x,y ¤¬´«ªº¥Øªº.




(3)





(4)
¬ÛÃö½d¨Ò

¥H¢Ó¢Ø¢á¡@¨Æ¥ó³B²z¤@·L¸I¼²ªº½d¨Ò¡@Elastic Collision (1D)¡@ºô­¶¤¤²Ä¤G­Ó½d¨Ò¾A¦Xªì¾ÇªÌ¡@¤U¸ü¡@±Ò°Ê«á¡@«ö¥kÁä¡@¿ï¨ú¡@open EJS model «K¥i±Ò°ÊEJS Æ[¬Ý¼ÒÀÀªº»s§@¤è¦¡¡I
Simulate 1D collision with a virtual spring¡@«h¬O¤@­Ó¥H¼u®¼ÒÀÀ¸I¼²¹Lµ{ªº¥t¤@ºØ§e²{¤è¦¡


¥H¤Uªº¼v¤ù¤W¤è³£¦³±±¨î¶s ¥i¥H¾Þ±±¼v¤ù¼È°±©Î¼½©ñµ¥°Ê§@
¦­´Áªºejs­ì©lÀɬO .xml®æ¦¡,¥Ø«e³Ì·sª© ejs­ì©l½X§ï¬° .ejs (¥i¤ä´©¤£¦P°ê®a»y¨¥¤å¦rªº®æ¦¡)

¦Û­q¨ç¼Æªº®æ¦¡»¡©ú¡G¥H¦æ¬P¹B°Ê¬°¨Ò

public  double calF(double dx,double dy){// public ªí¥Ü¦¹¨ç¼Æ¦bejs¤º¦U³B³£¥i¥H¨Ï¥Î
double r2,r3;
r2=dx*dx+dy*dy;
r3=r2*Math.sqrt(r2);
return G*m1*m2/r3;
}

©w¸q¥H¤W¨ç¼Æ¥H«á «K¥i¥H©ó»Ý­n®É¨Ï¥Î
¨Ò¦p fx=calF(2.5, 3.2); ÅÜ·|±N 2.5±a¤J¨ç¼Æ¤¤ªºdx,3.2±a¤J¨ç¼Æ¤¤ªºdy µM«á±N­pºâµ²ªG©ñ¤J fxªºÅܼƤº

¨ç¼Æ¤¤¤]¥i¥H¥[¤W±ø¥ó¦Ó¶Ç¦^¤£¦P­È

¨Ò¦p

public double calF(double x){
if(x<0)return 0.;
return 5.;
}

«h¥H¤W¨ç¼Æ°õ¦æ®É ­Y°Ñ¼Æx<0¶Ç¦^ 0 , x>=0 «h¶Ç¦^5
ªí¥Ü·íx<0®Éª«Å餣¨ü¤O ¦ý¬Ox>0®É¨ü¨ì©T©wªº¤O§@¥Î




(5)
Ãö©óJAVA°ª¶¥°Ñ¦Ò¸ê®Æ




(6)
¦n¥Îªº¤u¨ã

¨Ï¥Îµ{¦¡¦³°ÝÃD®É¥i¥HÂǥѦw¸Ë¥H¤Uµ{¦¡Â^¨ú¹q¸£µe­±ªº¿Ã¹õ »¡©ú°ÝÃD±¡ªp
ÂI¿ï«á¦w¸Ë ¨Ã±Ò°Ê«á§Y¥i¨Ï¥Î
§A¥i¥HÂ^¨ú¾ã­Ó¹q¸£®à­± ©ÎªÌ¬Y­Ó¯S©wµøµ¡ ©ÎªÌ¦Û¦æ©w¸q­nÂ^¨úªºµe­±°Ï°ì
µ{¦¡¹w³]«ö¤U  PrtScr Áä®É·|¶}©lÂ^¨úµe­±
­Y¬O¿ï¾Ü¦Û¦æ©w¸qÂ^¨ú°Ï°ì «h»Ý§Q¥Î·Æ¹«¥ý¿ï¾Ü°Ï°ìªº¥ª¤W¨¤ µM«á¿ï¾Ü°Ï°ìªº¥k¤U¨¤
¿ï§¹«K¶}©lÂ^¨úµe­±
¥»µ{¦¡ªº¦n³B¬OÂ^¨ú§¹µe­±«á ¥]§t¤@¨Ç²©ö¤u¨ã Åý§A¥i¥H¥[¤u»¡©ú
¨Ò¦p¥[¤W½bÀY ¿é¤J¤å¦rµ¥¥\¯à ½Ð¦Û¦æ¸Õ¸Õ¬Ý À³¸Ó¬O¤@­ÓÆZ¦n¥Îªº¤p¤u¨ã¡I




(7)
¶i¶¥°Ñ¦Ò¸ê®Æ

 



(8)
¹L¥h±MÃD»s§@»Ý­n»¡©ú¨Æ¶µ

  1. ¤TºûªºÅã¥Ü»Pª«¥ó¨Ï¥Î¡@§t¤Tºûª«¥óªº±ÛÂà¡G¨Ï¥Î¤Tºûµe¹Ï°ÏDrawingPanel3D Ãþ¦ü¤Gºû³]©wx,y,z®y¼Ð»P¹ïÀ³ÄÝ©Ê
  2. ª«¥óªºÅã¥Ü»P®ø¥¢¡G¨C¤@­Óª«¥ó³£¦³Åã¥ÜªºÄÝ©Ê ¸ÓÄݩʤº¹ïÀ³ÅܼƬ°true «hÅã¥Ü ¨Ò¦p©w¸qÅÜ¼Æ show(¸ê®Æ®æ¦¡¬° boolean)¹w³]­È¬° false,±N²É¤lÅã¥ÜÄݩʳ]¬° show «h²É¤l¤£Åã¥Ü,­Y²K¥[¤Ä¿ï¤è¶ô Åý¨ä¹ïÀ³ÅܼƬ° show «h·í¤Ä¿ï®É  show­ÈÅܦ¨ true ©ó¬O²É¤lÅã¥Ü,¤£¤Ä¿ï®É«h¤£Åã¥Ü
  3. §@¥Î¤OÀH®É¶¡©ÎªÅ¶¡Åܤƪº³B²z¡G ©w¸q¨ç¼Æ­pºâ§@¥Î¤O ©ó¨ç¼Æ¤º§Q¥Î if «ü©w§PÂ_¤£¦Pª¬ªp¤U¸Ó¶Ç¦^ªº¼Æ­È
  4. ª«¥óÃC¦âªº³B²z¡G©w¸qÅÜ¼Æ ¥H«Kµ{¦¡¤¤ÅÜ¤Æ¨ä¼Æ­È ¨Ò¦p ©w¸qclr,red,blueµ¥ ÅÜ¼Æ ¸ê®Æ®æ¦¡¿ï¾Ü Object, ±Nred ¹w³]­È©w¬° new java.awt.Color(255,0,0) blue¹w³]­È©w¬° new java.awt.Color(0,0,255) ­Y±N²É¤lÃC¦âÄݩʩw¬°clr , ¦Óclr=red «hÅã¥Ü¬õ¦â clr=blue«hÅã¥ÜÂŦâ. ¤î©ó¦ó®É©w´N­n¬Ý§A¦Û¤v¦p¦ó³]­p¡I
  5. ªì©l¤Æªº³B²z¡Gªì©l¤Æ­¶ ³q±`¶Èµ{¦¡¶}©l°õ¦æ ©w¸q§¹Åܼƫá°õ¦æ¤@¦¸.­Y»Ý­n­«½Æ°õ¦æ¥i¿é¤J _initialize();
  6. ±±¨î±ì¼Æ­È¯S©w°Ï¶¡ªº³]©w: ¨Ò¦p²K¥[©Ô±ì¹ïÀ³ÅܼÆn,½d³ò³Ì¤p0,³Ì¤j15,  ±±¨î©Ô±ì¦³¼Ð½u¼Æ ­Y±N¨ä©w¬°6, ¨Ã±N¤U¤è³Ì±µªñ­È¿ï¬°true,«h©Ô±ì©ñ¶}«á¼Æ­È¶È¥X²{©ó0,3,6,9,12,15 µ¥¤»­Ó¦ì¸m  
  7. ²K¥[±×­±¡G¦³¤@­ÓPlaneªº¤¸¥ó «ü©w¤@­ÓºÝÂIªº®y¼Ðx,y,zµM«á«ü©w³q¹L¸ÓÂI±×­±¨âÃäÃäªø»P¨âÃ䪺¦V¶q®y¼Ð¡]¤è¦VA/BÄݩʡ^
  8. ¦p¦ó¨Ï¥Î¥~¿n¡H½Æ¼Æ¡H ¨Ò¦p F=q*(E+VXB) ¤À§O©w¸qfx,fy,fz ¨Ì¾Ú©w¸q¼g¤UÃþ¦ü fx=q*Ex+q*(vy*Bz-vz*By)§Y¥i ½Æ¼Æ¤]¬O©w¸q¨â­ÓÅܼƦpxr,xi ¤À§O±aªí¹ê¼Æ»Pµê¼Æ­È
  9. ¦p¦ó¥Î«öÁä¨Ó±±¨î¡H©w¸q¤@­ÓÅܼÆÀx¦s«öÁ伯­È¡]¬O0-255¼Æ¦r¡^¨Ò¦pÅܼƩw¸q¬°key¸ê®Æ®æ¦¡¿ï¾Ü¾ã¼Æ DrawingPanel ¤º«öÁä¥N½X ³]¬°key, «h«ö¤UÁä½L¬YÁä®É¨ä¹ïÀ³¹q¸£½X ·|Àx¦s©ókeyÅܼƤº ¨Ò¦p«ö¤Ua key­È·|Åܦ¨65,b«hÅܦ¨66µ¥.­Y»Ý­n°õ¦æ«ü¥O«h¶ñ¼g©ó «öÁä«ü¥OªºÄݩʤº
  10. Åý¨â­Óª«¥ó¦X¦Ó¬°¤@¡Hªoºwµ²¦X ³o­n¦Û¤v·Q¦nªoºw§Îª¬ªº¼Æ¾ÇÃö«Y¦¡ §Q¥Î¦hÃä§Î¥h´yø¡I
  11. ·Æ¹«ªº¾Þ±±¡GDraeingPanel¤º¦³·Æ¹«x,y®y¼ÐªºÄÝ©Ê ©w¸qÅܼƦpmx,myµM«á±N¨ä®y¼ÐÄݩʤÀ§O³]¦¨mx,my «h·Æ¹«®y¼Ð·|Àx¦s©ó¸Ó¨â­ÓÅܼƤº
  12. Åã¥Ü¤å¦r¡I¦³¤å¦rªº¤¸¥ó³]©w­nÅã¥Üªº¤å¦r»P®y¼Ð§Y¥i
  13. ¹Ï¤ùªº¨Ï¥Î¡G¦³¹Ï¤ùªº¤¸¥ó ¹Ï¤ù¥i¥H¬Ogif©Îjpg,¦ý¬O»Ý­n©ñ¦bSimulation¥Ø¿ý¤U¡]¤l¥Ø¿ý¤]¥i¥H¡^ ¿ï¾Ü¹Ï¤ùÀɦW ¨Ã³]©w¹Ï¤ù®y¼Ð¼e°ªµ¥ÄݩʧY¥i
  14. ­I´º°Êª«Å餣°Ê ¡]¦|²îªº½d¨Ò¡^Åý­I´ºªºÂI©Î½u¤Ï¤è¦V²¾°Ê
  15. 1/p+1/q=1/f¡G¨Ò¦p¤wª¾ p,f «hÂà´«¦¨ q= pf/(p-f);
  16. ¤£ª¾¹D¦p¦óªí¹F°Ê¶q¦u¿Åªº¶Ç»¼»yªk¡F¯à¶q¦u¿Åªº¦Ò¼{
    ¨ä¹ê­«ÂI¬O¥u­nµ{¦¡§@¥Î¤O¤ÀªR¬O¥¿½Tªº¦ÛµM´N·|º¡¨¬¯à¶q¦u«í»P°Ê¶q¦u«íªºÃö«Y ¦Ó¤£¬O¤Ï¹L¨Óªº¤è¦¡¡I
  17. ¦p¦ó¨D¨â²y¸I¼²³s¤ß½u¤À¶q©Î¤Ï®g½u¡H
  18. ­I´º²¾°Ê¡]xmin+dx,xmax+dx,ymin+dy,ymax+dy¡^




(9)

¥i¥H³z¹LjavaScript ¥h±±¨î©Î¨ú±o EJS°Êµe¤¤ªº°ÑÅÜ¼Æ¸ê®Æ

¾ãÅéÅܼƻP°Ï°ìÅܼÆ
¨ç¼Æªº©w¸q

public void action(){
 if(x<0)x=0;
}
public double calF(double x1,double x2){
  if( Math.abs(x1-x2)<size)return -k*(Math.abs(x1-x2)-size);
 return 0.;
}




(10)



»P





©|¥¼µn¤J. (µn¤J)

since 2011/06/20 18:23