亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cinematic.java

?? 一個由c轉成java的3D robot 仿真平臺
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
 	   double help2, help3, help4; 	   double c23, s23; 	   c23 = c[2] * c[3] - s[2] * s[3]; 	   s23 = c[2] * s[3] + s[2] * c[3];	   help1 = (-T[0][0])*( c[1]*c23*s[4] - s[1]*c[4]); 	   help3 = T[1][0]*( s[1]*c23*s[4] + c[1]*c[4]); 	   help4 = T[2][0]*( s23*s[4]); 	   help1 = help1 - help3 + help4; 	   help2 = T[0][0]*((c[1]*c23*c[4] + s[1]*s[4])*c[5] - c[1]*s23*s[5]) +                   T[1][0]*((s[1]*c23*c[4]-c[1]*s[4])*c[5] - s[1]*s23*s[5]) -                   T[2][0]*(s23*c[4]*c[5] + c23*s[5]);           if ( Math.abs(help1) <= 0.000001)	     help1 = 0.0; 	   if ( Math.abs(help2) <= 0.000001)	     help2 = 0.0;   	   if ( Math.abs(help1) <= 1.000001 && Math.abs(help2) <= 1.000001 &&  	        ( help1 != 0.0 || help2 != 0.0))  	     {   	       angNew[0] = Math.atan2( help1,help2 );	       /* **************************************************** */   	       if ( Math.abs(Math.abs(angNew[0]) - Math.PI ) < 0.000001 )      		 {      	 	   if ( angles[5].act < 0.0 && angNew[0] >= 0.0 ) 		     angNew[0] = -angNew[0];    		   if ( angles[5].act > 0.0 && angNew[0] < 0.0 )		     angNew[0] = -angNew[0];     		  }	       /* **************************************************** */           	       if ( angNew[0] < (-Math.PI ))	         angNew[0] = angNew[0] + 2 * Math.PI;    	       else 		 {	           if ( angNew[0] > Math.PI )		     angNew[0] = angNew[0] - 2 * Math.PI;         	 }     	       return 0; 	     } 	   else return 1;	}	public static int inverseCinematic(double[][] T, double[] angNew,			AngleDates[] angOld, double[] linkl, int result,			int f_a_g, RoboProto rob)	{	   /* 'T' has to be a 3x4-array and is frame 6 relatively to     */	   /* frame 0. 'angNew' consists of 6 elements as 'angOld' does. */	   /* 'linkl' has got 3 elements.				 */	   /* 'angOld' are the actual angles and 'linkl' the actual link */	   /* lengths. If result is 0 then a valid combination of angles */	   /* has been found.						 */	   /* Returns the new value of 'result'.             		 */	   double[][] A = new double[3][4]; 	   double angMax,angHelp; 	   int number; 	   AngleDates[] w = { new AngleDates(0.0, 0.0, 0.0),			      new AngleDates(0.0, 0.0, 0.0),  			      new AngleDates(0.0, 0.0, 0.0),			      new AngleDates(0.0, 0.0, 0.0),  			      new AngleDates(0.0, 0.0, 0.0),			      new AngleDates(0.0, 0.0, 0.0) };  	   double[] s = new double[6], c = new double[6]; 	   double zw,help;	   double[] angle = new double[2]; 	   int i,j,k, reminder;      		      /* reminder = 0 ... result is OK.                         reminder = 1 ... no result.                         reminder = 2 ... the result has to be checked.                         reminder = 5 ... set angle 5  to 0.        */      	   double[][] w_tab = new double[8][7]; 		      // w_tab[i][0] = 0 ... Angle combination is OK.                       // w_tab[i][0] = 1 ... Angle combination is not OK.                      // w_tab[i][0] = 2 ... Combination has to be checked. 	   result = 1;	   reminder = 300; // stupid, only for the syntax needed default value 	   reminder = inverseAngle1 ( T,angle,angOld,reminder, rob ); 	   for ( i=0 ; i < 2 ; i++ )	     {	       w_tab[i][0] = reminder;               w_tab[i][1] = angle[0];             } 	   for ( i=2 ; i < 4 ; i++ )	     {	       w_tab[i][0] = reminder;               w_tab[i][1] = angle[1];             }              	   reminder = inverseAngle3 ( T,angle,linkl,reminder, rob ); 	   if ( reminder == 0 ) 	     {   	       /* It exists a solution for angle 3 */   	       for ( i=0 ; i < 2 ; i++ ) 	         {		   w_tab[i*2][3] = angle[0];                   w_tab[i*2+1][3] = angle[1];                 }  	       for ( i=0 ; i < 4 ; i++ ) 	         {	           s[1] = Math.sin ( w_tab[i][1] ); 	           c[1] = Math.cos ( w_tab[i][1] );   	  	   s[3] = Math.sin ( w_tab[i][3] );   		   c[3] = Math.cos ( w_tab[i][3] );    		   reminder = inverseAngle2 (T,angle,linkl,w_tab[i][1],					 w_tab[i][3], s,c,reminder, rob );   		   if ( reminder == 1 ) 	             w_tab[i][0] = 1.0 ;      		   else      		     {  		       /* A solution for angle 2 exists, that means angle 4         	          can now be calculated.                           */        		       w_tab[i][2] = angle[0];     		       s[2] = Math.sin ( angle[0] );     		       c[2] = Math.cos ( angle[0] );     		       reminder = inverseAngle4 ( T,angle,angOld,w_tab[i][1],				   w_tab[i][2], w_tab[i][3], s,c,reminder,rob);    		       if ( reminder == 1 ) 			 w_tab[i][0] = 1.0;       		       else  		         { 			    /* A solution for angle 4 exists, that means 			       angle 5 can now be calculated.		 */        		    s[4] = Math.sin ( angle[0] );     			    c[4] = Math.cos ( angle[0] );      			    w_tab[i][4] = angle[0];      			    if ( reminder == 5 )          		      {           			w_tab[i][0] = 2.0;         		        w_tab[i][5] = 0.0;       			        s[5] = 0.0;       			        c[5] = 1.0;         		      }  /* if .. reminder == 5 */       			    else       			      { 			        /* Calculation of angle 5 */       			        reminder = inverseAngle5(T,angle,w_tab[i][1],					    w_tab[i][2],w_tab[i][3], 					    w_tab[i][4],s,c,reminder, rob );           			if ( reminder == 1 ) 				  w_tab[i][0] = 1.0;            			else 				  { 				    w_tab[i][5] = angle[0];                		    s[5] = Math.sin ( w_tab[i][5] );                		    c[5] = Math.cos ( w_tab[i][5] );              			  }         		      }  /* else .. reminder == 5 */       			    if ( w_tab[i][0] != 1.0 )         		      {  				/* Calculation of angle 6 */          		        reminder = inverseAngle6(T,rob.angles,angle,				    w_tab[i][1], w_tab[i][2],w_tab[i][3],                                    w_tab[i][4],w_tab[i][5],s,c,reminder, rob);    	                        if ( reminder == 1 )			          w_tab[i][0] = 1.0 ;          		        else      			          {      			            w_tab[i][6] = angle[0];                      		            /* Copying of the angle values: */         		            w_tab[i+4][0] = w_tab[i][0];       		                    w_tab[i+4][1] = w_tab[i][1];        		            w_tab[i+4][2] = w_tab[i][2];          		            w_tab[i+4][3] = w_tab[i][3];              			    if ( Math.abs(w_tab[i][4]) == 0.0 )               			      {              			        if ( angOld[3].act >= 0.0 ) 					  w_tab[i+4][4] = w_tab[i][4] +Math.PI;               				else w_tab[i+4][4] = w_tab[i][4] 							     - Math.PI;             			      }               			    else              		              { 			 	 	if (w_tab[i][4] > 0.0) 					  w_tab[i+4][4] = w_tab[i][4] -Math.PI;                			else w_tab[i+4][4] = w_tab[i][4] 							     + Math.PI;             			      }             			    w_tab[i+4][5] = -w_tab[i][5];                            			    if ( Math.abs(w_tab[i][6]) == 0.0 )              			      {             			        if ( angOld[5].act >= 0.0 ) 					  w_tab[i+4][6] = w_tab[i][6] +Math.PI;              				else w_tab[i+4][6] = w_tab[i][6] 							     - Math.PI;             			      }              			    else            			      { 				        if (w_tab[i][6] > 0.0) 					  w_tab[i+4][6] = w_tab[i][6] -Math.PI;              			        else w_tab[i+4][6] = w_tab[i][6] 							     + Math.PI;            			      }             		          } /* else .. reminder W6 */           		      } /* if ... w_tab[i][0] == 0 */       		          }  /* else .. reminder Angle 4 */      		      }    /* else .. reminder Angle 2 */	          } /* endfor  */  		/* Determination of the best angle solution */                      	        result = 1;	        zw = 10000;		for ( i=0 ; i < 8 ; i++ ) 		  {  		    if ( w_tab[i][0] != 1.0)   		      {   		        reminder = 0;   		        for ( j=0 ; j < 6 ; j++ )    			  {   			    w[j].act = w_tab[i][j+1];    			    if ( w_tab[i][j+1] < rob.angles[j].min ||    		                 w_tab[i][j+1] > rob.angles[j].max )                               {                                w_tab[i][0] = 1.0;                                reminder = 1;                                break;                              }   		 	  } /* endfor */   		        if ( reminder == 0 )     			  {     			    TO6 ( w,linkl,A );     			    for ( j=0 ; j < 3 ; j++ )     			      {      			        if ( Math.abs(T[j][0] - A[j][0]) > 0.01 ||       			             Math.abs(T[j][1] - A[j][1]) > 0.01 ||         		             Math.abs(T[j][2] - A[j][2]) > 0.01 ||          		             Math.abs(T[j][3] - A[j][3]) > 0.1     )				  {                                     w_tab[i][0] = 1.0;                                      reminder = 1;                                    break;                                  }      			      }      		 	    if ( reminder == 0 )       			      {              		        // This combination of angles is allowed				// and correct.           			// Calculation of the target function.       			        help = 0;         		        for ( j=0 ; j < 6 ; j++ )         			  help = help + rob.angleWeights[j] * 				     Math.abs( w_tab[i][j+1] - angOld[j].act );         			if ( zw > help ) 				  {                          	    zw = help;                          	    for ( j=0 ; j < 6 ; j++ )                             	      angNew[j] = w_tab[i][j+1];                            	  }           		        result = 0;      			      }     			  }                      } /* end if */                  }  /* end for */                /* If it is the case that f_auto_gerade is 0 ,      	 	   it will be tested, if there exists a better solution. */ 	        if ( f_a_g == 0 )  		  {   		    angMax = Math.abs( angOld[0].act  - angNew[0] );   		    for ( i=1; i < 6; i++ )    		      {   			if (angMax < (Math.abs( angOld[i].act - angNew[i] ) )) 			  angMax = Math.abs( angOld[i].act - angNew[i] );  		      }   		    for ( i=0; i < 8; i++ )   		      {    		        if ( w_tab[i][0] != 1 )       		          {       			    angHelp = Math.abs( angOld[0].act - w_tab[i][1] );    		            for ( j=2; j < 7; j++ )     			      { if ((i > 0) && (i < 7))// meine Einschraenkung     			        if (angHelp < 				  (Math.abs(angOld[i-1].act - w_tab[i][j]))) 			          angHelp = Math.abs(					       angOld[i-1].act - w_tab[i][j] );    		              }           		            if ( angMax > angHelp )     			      {      			        angMax = angHelp;      			        for ( j=0; j < 6; j++ ) 			          angNew[j] = w_tab[i][j+1];   		              }    		          }    		      }                      }                } /* if reminder == 0) ... */ 	   return result;	} /* end of method: 'inverseCinematic' */	} 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区精品在线| 蜜桃免费网站一区二区三区 | 欧美日韩和欧美的一区二区| 久久精品国产一区二区三| 亚洲欧洲美洲综合色网| 精品久久久久久久人人人人传媒| aaa欧美大片| 九九九精品视频| 亚洲妇女屁股眼交7| 成人欧美一区二区三区视频网页 | 久久蜜桃av一区二区天堂| 欧美午夜不卡视频| 成人动漫一区二区在线| 国产精品综合视频| 久久精品国产精品亚洲综合| 午夜精品久久久久久久| 亚洲精品亚洲人成人网 | 中文字幕国产精品一区二区| 欧美大片日本大片免费观看| 欧美人xxxx| 欧美性视频一区二区三区| 99精品久久久久久| 成人蜜臀av电影| 成人免费视频app| 国产黑丝在线一区二区三区| 国产自产高清不卡| 久久er精品视频| 蜜臀a∨国产成人精品| 视频一区二区不卡| 午夜成人免费电影| 亚洲成人在线免费| 亚洲制服丝袜一区| 亚洲福利视频三区| 亚洲v日本v欧美v久久精品| 一区二区欧美视频| 亚洲综合精品久久| 一区二区欧美国产| 亚洲乱码中文字幕| 亚洲午夜精品网| 一区二区三区电影在线播| 亚洲尤物视频在线| 亚洲成av人片一区二区三区| 天天av天天翘天天综合网| 亚洲超碰精品一区二区| 日韩高清在线观看| 麻豆成人av在线| 久久99国内精品| 国产成人日日夜夜| youjizz久久| 91国产福利在线| 欧美另类videos死尸| 91精品国产色综合久久ai换脸| 日韩一区国产二区欧美三区| 日韩一区二区免费视频| 久久久国际精品| 综合在线观看色| 亚洲成人综合视频| 狠狠色综合播放一区二区| 国产成人午夜高潮毛片| 91视频国产观看| 欧美一级黄色录像| 亚洲国产激情av| 亚洲一区二区不卡免费| 久久精品久久综合| 99久久国产综合色|国产精品| 91福利在线导航| 日韩一卡二卡三卡国产欧美| 国产丝袜欧美中文另类| 亚洲精品成人a在线观看| 爽好久久久欧美精品| 久草热8精品视频在线观看| 成人亚洲一区二区一| 91久久一区二区| 日韩一区二区三区在线观看| 欧美韩日一区二区三区| 亚洲国产成人av| 国产成人精品亚洲777人妖| 91久久一区二区| 2021中文字幕一区亚洲| 一二三四社区欧美黄| 国内外成人在线| 在线观看一区二区精品视频| 久久先锋影音av鲁色资源网| 亚洲女同一区二区| 国产尤物一区二区| 欧美专区日韩专区| 日本一区二区三区电影| 午夜日韩在线观看| 99国产欧美久久久精品| 精品久久免费看| 亚洲一区免费视频| 成年人网站91| 欧美tickling挠脚心丨vk| 亚洲久草在线视频| 成人综合在线视频| 日韩免费高清av| 亚洲图片欧美色图| 成人的网站免费观看| 日韩三级伦理片妻子的秘密按摩| 综合激情成人伊人| 激情六月婷婷综合| 欧美三级欧美一级| 国产精品伦理在线| 国产美女在线精品| 欧美一区二区成人6969| 亚洲免费资源在线播放| 岛国精品在线观看| 精品精品国产高清a毛片牛牛| 亚洲地区一二三色| 91官网在线免费观看| 国产精品激情偷乱一区二区∴| 激情综合色播五月| 91精品国产麻豆国产自产在线| 亚洲欧美视频在线观看| 成人国产一区二区三区精品| www欧美成人18+| 蜜桃av一区二区| 欧美一区永久视频免费观看| 亚洲韩国一区二区三区| 91欧美一区二区| 日韩毛片精品高清免费| 福利电影一区二区三区| 国产午夜三级一区二区三| 麻豆国产精品一区二区三区 | 日本欧美大码aⅴ在线播放| 欧美影片第一页| 一区二区在线观看视频在线观看| 波多野结衣一区二区三区| 国产欧美视频在线观看| 国产精品综合二区| 欧美激情一区二区三区| 成人激情免费电影网址| 国产精品麻豆99久久久久久| 成人精品在线视频观看| 136国产福利精品导航| 99re这里只有精品首页| 亚洲欧美视频在线观看视频| 色综合天天综合给合国产| 亚洲激情校园春色| 在线观看视频欧美| 亚洲一区精品在线| 欧美精品tushy高清| 青青草精品视频| 精品人在线二区三区| 紧缚捆绑精品一区二区| 久久久亚洲精华液精华液精华液| 韩国欧美国产一区| 国产校园另类小说区| 成人妖精视频yjsp地址| 亚洲乱码中文字幕综合| 欧美日韩精品三区| 麻豆成人免费电影| 日本一区二区免费在线 | 99v久久综合狠狠综合久久| 一区二区三区日韩精品| 欧美日韩精品免费| 六月丁香婷婷色狠狠久久| www久久精品| 91猫先生在线| 日韩专区一卡二卡| 久久综合色婷婷| 91小视频免费观看| 日韩成人午夜精品| 久久久久久久久久电影| 99久久免费视频.com| 亚洲电影你懂得| 久久九九99视频| 欧美在线制服丝袜| 蜜臀久久99精品久久久久久9| 日本一区二区三区电影| 欧美色综合久久| 精品综合久久久久久8888| 中文字幕一区二区三区蜜月 | 99亚偷拍自图区亚洲| 偷拍与自拍一区| 欧美国产日本视频| 欧洲中文字幕精品| 国产麻豆欧美日韩一区| 亚洲精品一二三四区| 久久一区二区三区四区| 91麻豆精品在线观看| 久久国内精品自在自线400部| 中文字幕一区视频| 精品日韩在线观看| 99久久精品99国产精品| 看片的网站亚洲| 夜夜嗨av一区二区三区| 久久久精品黄色| 337p亚洲精品色噜噜狠狠| 99久久夜色精品国产网站| 精品制服美女丁香| 亚洲第一福利一区| 中文字幕一区二区三区四区| 日韩欧美一级在线播放| 欧美中文字幕亚洲一区二区va在线 | 亚洲激情在线激情| 日本一区二区视频在线观看| 在线播放中文一区| 色偷偷成人一区二区三区91| 国产精品一区二区三区99|