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

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

?? world.cpp

?? robocuo相關資料robocuo相關資料
?? CPP
字號:
#include "world.h"#include <iostream>#include "body.h"using namespace std;world::world(){	cycle = 0;	uniform_number = 0;	team_name = "Parsian";	field_length = 12.0;	field_width = 8.0;	goal_width = 7.32;	ready = false;}void world::set_flags(){	flags[F1L].global_position = Vector3d( -field_length / 2.0,  field_width / 2.0, 0.0 );	flags[F2L].global_position = Vector3d( -field_length / 2.0, -field_width / 2.0, 0.0 );	flags[F1R].global_position = Vector3d(  field_length / 2.0,  field_width / 2.0, 0.0 );	flags[F2R].global_position = Vector3d(  field_length / 2.0, -field_width / 2.0, 0.0 );	flags[G1L].global_position = Vector3d( -field_length / 2.0, -goal_width / 2.0, 0.0 );	flags[G2L].global_position = Vector3d( -field_length / 2.0,  goal_width / 2.0, 0.0 );	flags[G1R].global_position = Vector3d(  field_length / 2.0, -goal_width / 2.0, 0.0 );	flags[G2R].global_position = Vector3d(  field_length / 2.0,  goal_width / 2.0, 0.0 );	if( team_side == "right" )		for( int i = 0; i < 8; i++ )		{			flags[i].global_position.X() *= -1.0;			flags[i].global_position.Y() *= -1.0;		}	ready =true;}void world::set_teammate(int id, Vector3d p){	for(int i=0;i<teammates.size();i++)		if(teammates[i].id==id)		{			teammates[i].vision_position = p;			return;		}	teammates.push_back(agent(id,p));}void world::set_opponent(int id, Vector3d p){	for(int i=0;i<opponents.size();i++)		if(opponents[i].id==id)		{			opponents[i].vision_position = p;			return;		}	opponents.push_back(agent(id,p));}void world::analyze(){	update_torso_position();	update_torso_rotation_matrix();	update_objects_positions();	update_situation();}void world::update_torso_position(){	double dist1 = flags[F1R].vision_position.magnitude();	double dist2 = flags[F1L].vision_position.magnitude();	double dist3 = flags[F2R].vision_position.magnitude();	double l = field_length;	double w = field_width;	double x = -( pow( dist1, 2 ) - pow( dist2, 2 ) ) / l / 2;	double y = -( -pow( dist3, 2 ) + pow( dist1, 2 ) ) / w / 2;	double z;	double tmp=-sqr( w ) * pow( dist1, 4 ) +	2 * sqr( w ) * sqr( dist1 ) * sqr( dist2 ) - sqr( w ) * pow( dist2, 4 ) +	2 * sqr( w ) * sqr( l ) * sqr( dist2 ) - sqr( w ) * pow( l, 4 ) -	pow( w, 4 ) * sqr( l ) + 2 * sqr( l ) * sqr( dist3 ) * sqr( dist1 ) +	2 * sqr( dist3 ) * sqr( w ) * sqr( l ) - sqr( l ) * pow( dist1, 4 ) -	sqr( l ) * pow( dist3, 4 );	if( tmp < 0.00001 )	{		z = 0.1 / 2;		//	cerr << "world::update_torso_position z < 0: " << z <<endl;	}	else	{		z = sqrt(tmp) / l / w / 2;		if(z<0.045)		{			//	cerr << "world::update_torso_position z < 0.045: " << z <<endl;			z=0.05;		}	}	if( team_side == "right" )	{		x *= -1.0;		y *= -1.0;	}	my_position = Vector3d(x,y,z);}void world::update_torso_rotation_matrix(){	Matrix r;	for( int i = 0; i < 4; i++ )		flags[i].relative_position = flags[i].global_position - my_position;	Matrix m;	m.m[0][0] = flags[0].relative_position.X() / flags[0].relative_position.magnitude();	m.m[0][1] = flags[0].relative_position.Y() / flags[0].relative_position.magnitude();	m.m[0][2] = flags[0].relative_position.Z() / flags[0].relative_position.magnitude();	m.m[1][0] = flags[1].relative_position.X() / flags[1].relative_position.magnitude();	m.m[1][1] = flags[1].relative_position.Y() / flags[1].relative_position.magnitude();	m.m[1][2] = flags[1].relative_position.Z() / flags[1].relative_position.magnitude();	m.m[2][0] = flags[2].relative_position.X() / flags[2].relative_position.magnitude();	m.m[2][1] = flags[2].relative_position.Y() / flags[2].relative_position.magnitude();	m.m[2][2] = flags[2].relative_position.Z() / flags[2].relative_position.magnitude();	m.m[3][3] = 1;/*	logger[123] << " rposaa : " <<endl;	for( int i = 0; i < 4; i++ )	{		logger[123] << flags[i].r_pos << " " << flags[i].r_pos.magnitude() << endl;		logger[123] << "gpos: " << flags[i].global_position << endl;	}	logger[123] << " m : " << endl;*/	//	m.print();	m = -m;	Vector3d c, row0, row1, row2;	c.X() = flags[0].vision_position.X() / flags[0].vision_position.magnitude();	c.Y() = flags[1].vision_position.X() / flags[1].vision_position.magnitude();	c.Z() = flags[2].vision_position.X() / flags[2].vision_position.magnitude();	row0 = m * c;	c.X() = flags[0].vision_position.Y() / flags[0].vision_position.magnitude();	c.Y() = flags[1].vision_position.Y() / flags[1].vision_position.magnitude();	c.Z() = flags[2].vision_position.Y() / flags[2].vision_position.magnitude();	row1 = m * c;	c.X() = flags[0].vision_position.Z() / flags[0].vision_position.magnitude();	c.Y() = flags[1].vision_position.Z() / flags[1].vision_position.magnitude();	c.Z() = flags[2].vision_position.Z() / flags[2].vision_position.magnitude();	row2 = m * c;	r.m[0][0] = row0.X();	r.m[0][1] = row0.Y();	r.m[0][2] = row0.Z();	r.m[1][0] = row1.X();	r.m[1][1] = row1.Y();	r.m[1][2] = row1.Z();	r.m[2][0] = row2.X();	r.m[2][1] = row2.Y();	r.m[2][2] = row2.Z();	r.m[3][3] = 1;	for(int i=0;i<4;i++)	{		double sum=0;		for(int j=0;j<4;j++)			sum+=r.m[i][j]*r.m[i][j];		sum=sqrt(sum);		for(int j=0;j<4;j++)			r.m[i][j]/=sum;	}	torso_direction_matrix = -r;	bd->l[Torso].mat=Matrix(my_position)*torso_direction_matrix;}void world::update_objects_positions(){	for(int i=0;i<teammates.size();i++)		teammates[i].global_position = (Matrix(my_position) * torso_direction_matrix *		Matrix(teammates[i].vision_position)).getVector3d();	for(int i=0;i<opponents.size();i++)		opponents[i].global_position = (Matrix(my_position) * torso_direction_matrix *		Matrix(opponents[i].vision_position)).getVector3d();	ball_position = (Matrix(my_position) * torso_direction_matrix * 	Matrix(ball_vision_position)).getVector3d();}void world::update_situation(){	Vector2d tv = (torso_direction_matrix*Matrix(Vector3d(1,0,0))).getVector2d();	if(tv.magnitude()>0.001)		theta_angle_on_field =Angle::Angle::normalizeAngle2 ( tv.angle() );//	cerr<<my_position.to_str()<<endl;//	torso_direction_matrix.print();	if(my_position.Z() > 2.5)	{		situation = SARPAA;			}else	{		Vector3d v = (torso_direction_matrix * Matrix(Vector3d(1,0,0))).getVector3d();//		cerr<<v.to_str()<<"  ";		if(v.Z()>.8)		{			situation = TAVAZ;		}		else if(v.Z()>-.8)		{			situation = YEVAR;					}		else		{			situation = DAMAR;					}	}}void world::SetGyro(double x,double y,double z){	Gyroscope=Vector3d(x,y,z);}Vector3d world::GetGyro(){	return Gyroscope;}void world::SetHearMsg(double Time,string Name,string Msg){	HearTime=Time;	HearName=Name;	HearMsg=Msg;}double world::GetHearTime(){	return HearTime;}string world::GetHearName(){	return HearName;}string world::GetHearMsg(){	return HearMsg;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
秋霞电影一区二区| 宅男噜噜噜66一区二区66| 国产成人综合亚洲网站| 久久国产日韩欧美精品| 免费久久精品视频| 精东粉嫩av免费一区二区三区| 蜜臂av日日欢夜夜爽一区| 免费av网站大全久久| 男人的天堂亚洲一区| 精品制服美女久久| 国产精品一区久久久久| 国产麻豆精品视频| 成人a级免费电影| 91丝袜美腿高跟国产极品老师 | 精品亚洲porn| 国产精品中文字幕一区二区三区| 国产精品88888| 99国产欧美久久久精品| 欧美视频一区二区在线观看| 51精品秘密在线观看| 精品国产91洋老外米糕| 国产精品区一区二区三区| 亚洲精品大片www| 日韩成人伦理电影在线观看| 国精产品一区一区三区mba桃花| 国产高清精品网站| 色综合天天综合色综合av| 在线成人av影院| 2023国产一二三区日本精品2022| 中文字幕国产一区| 一区二区三区欧美激情| caoporen国产精品视频| 色综合久久99| 日韩一区二区三区在线视频| 国产亚洲成aⅴ人片在线观看| 成人欧美一区二区三区1314| 亚洲成在人线在线播放| 激情另类小说区图片区视频区| 国产999精品久久久久久| 91精品91久久久中77777| 欧美一区二区三区四区五区| 国产日韩欧美电影| 首页国产欧美日韩丝袜| 国产精品2024| 欧美日韩国产a| 日本一区二区在线不卡| 偷拍日韩校园综合在线| 国产成人日日夜夜| 欧美日韩免费在线视频| 国产亚洲一区二区三区四区| 亚洲aⅴ怡春院| 国产成人精品亚洲午夜麻豆| 欧美日韩午夜影院| 国产精品色呦呦| 免费成人结看片| 91福利视频久久久久| 国产欧美日韩三级| 免费国产亚洲视频| 在线观看成人免费视频| 日本一二三不卡| 日韩成人伦理电影在线观看| 色综合天天综合网国产成人综合天| 精品久久久久久久久久久久包黑料 | 亚洲超碰97人人做人人爱| 国产成人综合亚洲网站| 91麻豆精品国产91久久久使用方法 | 成人精品小蝌蚪| 欧美电影免费观看完整版| 亚洲一区二区av在线| 成人一级片网址| 久久网这里都是精品| 午夜在线电影亚洲一区| jiyouzz国产精品久久| 精品奇米国产一区二区三区| 亚洲成人动漫在线观看| 91免费在线视频观看| 国产三级精品视频| 久久99国内精品| 欧美精品乱人伦久久久久久| 亚洲精品国产无套在线观| 国产a久久麻豆| 精品三级av在线| 日本亚洲最大的色成网站www| 色欧美日韩亚洲| 亚洲视频一区在线| 不卡一区中文字幕| 国产午夜精品一区二区三区嫩草| 毛片av一区二区| 欧美高清性hdvideosex| 亚洲国产精品影院| 欧洲一区在线电影| 亚洲一区视频在线| 91精彩视频在线| 亚洲乱码国产乱码精品精小说 | 亚洲成人先锋电影| 国产传媒一区在线| 免费在线成人网| 一区二区三区资源| 日本欧洲一区二区| 欧美狂野另类xxxxoooo| 亚洲最新在线观看| 日本韩国欧美一区| 亚洲综合在线第一页| 91久久国产综合久久| 亚洲一二三区在线观看| 在线视频观看一区| 亚洲国产精品一区二区尤物区| 欧美影院一区二区| 三级精品在线观看| 日韩一区二区三区四区| 国产综合久久久久久鬼色| 久久久亚洲精品一区二区三区| 国产精品影视在线| 国产人成一区二区三区影院| 成人av电影在线网| 一区二区三区四区高清精品免费观看| 在线看国产一区二区| 三级在线观看一区二区| www亚洲一区| 不卡av电影在线播放| 亚洲精品第1页| 欧美另类久久久品| 韩国女主播成人在线观看| 国产精品毛片久久久久久| 91精彩视频在线观看| 日本欧美在线看| 国产三级欧美三级| 91国产丝袜在线播放| 日本一不卡视频| 国产农村妇女毛片精品久久麻豆 | 一区二区三区av电影| 欧美日韩一区二区三区四区| 卡一卡二国产精品| 中文字幕av一区二区三区| 日本久久电影网| 免费久久精品视频| 亚洲欧洲无码一区二区三区| 欧美色手机在线观看| 韩国av一区二区三区四区| 中文字幕亚洲欧美在线不卡| 欧美日韩一二三| 国产成人免费高清| 午夜婷婷国产麻豆精品| 久久久一区二区| 欧美视频一区二区三区在线观看 | 91福利视频久久久久| 蜜桃一区二区三区在线观看| 国产精品欧美一级免费| 6080yy午夜一二三区久久| 成人性生交大片免费看中文| 婷婷综合在线观看| 亚洲国产精品精华液ab| 欧美福利电影网| 99re成人在线| 精品一区二区免费| 亚洲中国最大av网站| 国产欧美日本一区二区三区| 欧美精品aⅴ在线视频| 波多野结衣欧美| 国内久久精品视频| 午夜精品福利在线| 亚洲欧美日韩综合aⅴ视频| 精品国产第一区二区三区观看体验| 在线国产亚洲欧美| 成人夜色视频网站在线观看| 美女精品一区二区| 一区二区久久久久久| 中文字幕av一区二区三区免费看 | 秋霞成人午夜伦在线观看| 自拍av一区二区三区| 久久久久一区二区三区四区| 欧美日韩精品免费观看视频| 成人一级片在线观看| 国内精品久久久久影院一蜜桃| 婷婷一区二区三区| 亚洲欧洲中文日韩久久av乱码| 国产三级久久久| 久久综合狠狠综合久久综合88 | 亚洲免费在线播放| 国产亚洲精品7777| 精品国产伦一区二区三区观看方式 | 欧美成人乱码一区二区三区| 欧美视频三区在线播放| 99久久777色| www.激情成人| 成人国产精品免费| 国产美女视频91| 国产一区二区三区av电影| 捆绑调教一区二区三区| 日韩电影免费一区| 五月婷婷综合激情| 亚洲一区二区综合| 一区二区三区不卡在线观看| 亚洲免费毛片网站| 亚洲欧洲精品一区二区精品久久久| 国产欧美日韩视频一区二区| 国产视频一区不卡| 国产日韩欧美一区二区三区综合| 精品成人免费观看| 精品久久久久久久人人人人传媒|