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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? obstaclesim.java

?? 一個(gè)多機(jī)器人的仿真平臺(tái)
?? JAVA
字號(hào):
/* * ObstacleSim.java */package EDU.gatech.cc.is.simulation;import java.awt.*;import EDU.gatech.cc.is.util.Vec2;import EDU.gatech.cc.is.util.Units;import EDU.gatech.cc.is.communication.Message;import EDU.cmu.cs.coral.util.Polygon2;import EDU.cmu.cs.coral.util.Circle2;/** * an obstacle for simulation. * <P> * Copyright (c)2000 Tucker Balch * * @author Tucker Balch * @version $Revision: 1.4 $ */public class ObstacleSim extends Object implements SimulatedObject	{	protected Vec2	position;	protected	Color	foreground, background;	protected	SimulatedObject[] all_objects;	protected	int	visionclass;	protected	int	unique_id;	protected	double	RADIUS;	protected	double	lastx, lasty;	public	static final boolean DEBUG = false;	/**	 * Instantiate an <B>ObstacleSim</B> object.  Be sure	 * to also call init with proper values.	 * @see ObstacleSim#init	 */        public ObstacleSim()		{		position = new Vec2(0,0);		foreground = Color.black;		if (DEBUG) System.out.println("ObstacleSim: instantiated.");		}	        /**         * Initialize a <B>ObstacleSim</B> object.	 * This is called automatically by JavaBotSim.	 * @param xp	the x coordinate.	 * @param yp	the y coordinate.	 * @param t	ingored.	 * @param r	the radius.	 * @param f	the foreground color.	 * @param b	ignored.	 * @param v	the vision class.	 * @param i	the unique id.	 * @param s	random number seed.         */	public void init(double xp, double yp, double t, double r,		Color f, Color b, int v, int i, long s)		{		position = new Vec2(xp,yp);		RADIUS = r;		foreground = f;		background = b;		visionclass = v;		setID(i);		if (DEBUG) System.out.println("ObstacleSim: initialized"			+" at "+xp+","+yp);		}	/**	 * Take a simulated step;	 */	public void takeStep(long time_increment, SimulatedObject[] all_objs)		{		/*--- keep pointer to the other objects ---*/		all_objects = all_objs;		// that's all that's really necessary		}	public boolean isObstacle()		{		return(true);		}		public boolean isPushable()		{		return(false);		}		public boolean isPickupable()		{		return(false);		}	        public Vec2 getPosition()                {                return(new Vec2(position.x, position.y));                }	public Vec2 getClosestPoint(Vec2 from)		{		Vec2 tmp = new Vec2(position.x, position.y);		tmp.sub(from);		if (tmp.r < RADIUS)			tmp.setr(0);		else			tmp.setr(tmp.r-RADIUS);                Vec2 last = new Vec2(tmp.x, tmp.y);                last.add(from);                lastx = last.x;                lasty = last.y;		return(tmp);		}        /**	 * determine if the object is intersecting with a specified circle.	 * This is useful for obstacle avoidance and so on.	 * @param c the circle which may be intersecting the current object.	 * @return true if collision detected.         */	public boolean checkCollision(Circle2 c)	    {	    Vec2 closest = getClosestPoint(c.centre); // closest is a vector with origin at centre that leads to closest point on current object	    if (closest.r <= c.radius) // closest point is within c.radius of c.centre			{			return true;			}	    else 			{			return false;			}	    }        /**	 * determine if the object is intersecting with a specified polygon.	 * This is useful for obstacle avoidance and so on.	 * @param p the polygon which may be intersecting the current object.	 * @return true if collision detected.         */	public boolean checkCollision(Polygon2 p)		{		Vec2 vertex1, vertex2, vec1, vector2, closestPt;		int numberEdges = p.vertices.size(); // n edges if n vertices (as vertex n+1 wraps round to vertex 0)		double scale;		for (int i=0;i<numberEdges;i++)			{			vertex1 = (Vec2)p.vertices.elementAt(i);			vertex2 = (Vec2)p.vertices.elementAt((i+1)%numberEdges);			vertex1.sub(position);			vertex2.sub(position);			// if either vertex is within the circles radius you are colliding			if ((vertex1.r < RADIUS) || (vertex2.r < RADIUS))				{				return true;				} 			vertex1.add(position);			vertex2.add(position);			vec1 = new Vec2(vertex2);			vec1.sub(vertex1);			vector2 = new Vec2(position);			vector2.sub(vertex1);			scale = ((vec1.x*vector2.x)+(vec1.y*vector2.y))/((vec1.x*vec1.x)+(vec1.y*vec1.y));			closestPt = new Vec2(scale*vec1.x, scale*vec1.y);			closestPt.add(vertex1); // absolute position of closest point			closestPt.sub(position); // position of closest point relative to centre of current object			if (closestPt.r < RADIUS)				{				// now need to check if closestPt lies between vertex1 and vertex2				// i.e. it could lie on vector between them but outside of them				if ( (scale > 0.0) && (scale < 1.0) )					{					return true;					}				}			}		return false; // closest point to object on each edge of polygon not within object					}	public Vec2 getCenter(Vec2 from)		{		Vec2 tmp = new Vec2(position.x, position.y);		tmp.sub(from);		return(tmp);		}	public void push(Vec2 d, Vec2 v)		{		// sorry no pushee obstacles!		}	public void pickUp(SimulatedObject o)		{		// sorry no pickupee obstacles!		}	public void receive(Message m)		{		// default is to ignore messages.		}	public void putDown(Vec2 p)		{		// sorry no put downee obstacles!		}	public void setVisionClass(int v)		{		visionclass = v;		}	public int getVisionClass()		{		return(visionclass);		}	public void setID(int i)		{		unique_id = i;		}	public int getID()		{		return(unique_id);		}	public void quit()		{		}        /**         * Draw the objects's ID.         */        public void drawID(Graphics g, int w, int h,                double t, double b, double l, double r)                {                //skip for obstacles                }        /**         * Draw the object as an icon.         * Default is just to do a regular draw.         */        public void drawIcon(Graphics g, int w, int h,                double t, double b, double l, double r)                {                draw(g, w, h, t, b, l, r);                }        /**         * Draw the objects's State.         */        public void drawState(Graphics g, int w, int h,                double t, double b, double l, double r)                {                double meterspp = (r - l) / (double)w;                if (DEBUG) System.out.println("meterspp "+meterspp);                int x1pix = (int)((lastx - l) / meterspp);                int y1pix = (int)((double)h - ((lasty - b) / meterspp));                if (DEBUG) System.out.println("line at"+                        " at "+x1pix+","+y1pix);                /*--- draw the oval ---*/                g.setColor(background);                g.fillOval(x1pix-2, y1pix-2, 4, 4);                }        /**         * Set the length of the trail (in movement steps).         * Non-robots can ignore this.          * @param l int, the length of the trail.         */        public void setTrailLength(int l)		{		//ignore		}        /**         * Clear the trail.         * Non-robots can ignore this.         */        public void clearTrail()		{		//ignore		}        /**         * Draw the objects's Trail.         */        public void drawTrail(Graphics g, int w, int h,                double t, double b, double l, double r)                {		//ignore for obstacles                }	/**	 * Draw the object.	 */	public void draw(Graphics g, int w, int h,		double t, double b, double l, double r)		{		double meterspp = (r - l) / (double)w;		if (DEBUG) System.out.println("meterspp "+meterspp);		int radius = (int)(RADIUS / meterspp);		int xpix = (int)((position.x - l) / meterspp);		int ypix = (int)((double)h - ((position.y - b) / meterspp));		if (DEBUG) System.out.println("robot at"+			" at "+xpix+","+ypix);		/*--- draw the main body ---*/		g.setColor(foreground);		g.fillOval(xpix - radius, ypix - radius,			radius + radius, radius + radius);		}	/**	 * Draw the object in a specific spot.	 */	public void draw(Vec2 pos, Graphics g, int w, int h,		double t, double b, double l, double r)		{		Vec2 old_pos = position;		position = pos;		draw(g,w,h,t,b,l,r);		position = old_pos;		}	}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品一区二区三区在线| 色激情天天射综合网| 成人福利视频网站| 在线观看免费亚洲| 91精品国产综合久久精品图片| 精品粉嫩超白一线天av| 亚洲人成精品久久久久久| 天堂一区二区在线免费观看| 国产真实精品久久二三区| 色网综合在线观看| 精品国产三级a在线观看| 亚洲欧美日韩国产手机在线| 久久精品噜噜噜成人88aⅴ| 91免费小视频| 精品国产精品网麻豆系列| 亚洲精品日日夜夜| 久久99精品久久久久久动态图| 99r国产精品| 日韩欧美一卡二卡| 亚洲免费观看在线观看| 久久99久久精品| 91国产福利在线| 久久久久国产成人精品亚洲午夜| 亚洲激情图片一区| 国产真实乱子伦精品视频| 在线观看av一区| 国产精品久久久一本精品| 美女免费视频一区| 欧美亚洲综合一区| 欧美激情在线看| 免费xxxx性欧美18vr| 一本大道久久a久久综合| 久久久久九九视频| 免费在线观看精品| 在线视频你懂得一区| 国产精品女主播在线观看| 激情六月婷婷久久| 91精选在线观看| 亚洲午夜免费视频| 色综合天天在线| 国产精品亲子伦对白| 国产精品白丝av| 欧美变态口味重另类| 视频一区二区中文字幕| 91久久免费观看| 中文字幕在线一区二区三区| 丁香网亚洲国际| 国产午夜一区二区三区| 国内国产精品久久| 91精品国产综合久久香蕉麻豆| 亚洲一区在线视频| 色婷婷av久久久久久久| 中文字幕日韩一区| 成人精品国产福利| 国产精品三级电影| 成人午夜视频在线| 国产蜜臀97一区二区三区| 国产成人综合在线观看| 精品电影一区二区| 精东粉嫩av免费一区二区三区| 制服丝袜亚洲色图| 日韩电影在线观看一区| 欧美日韩激情一区| 天堂影院一区二区| 欧美浪妇xxxx高跟鞋交| 婷婷综合在线观看| 91精品国产综合久久蜜臀| 欧美96一区二区免费视频| 日韩午夜精品视频| 精品一区二区综合| 久久久夜色精品亚洲| 国产超碰在线一区| 国产精品久久久久久久久快鸭| 波多野结衣91| 亚洲免费av高清| 欧美亚洲一区二区在线观看| 亚洲小说欧美激情另类| 69堂国产成人免费视频| 日本欧美一区二区在线观看| 欧美大黄免费观看| 国产一区三区三区| 中文字幕巨乱亚洲| 99精品桃花视频在线观看| 亚洲精品综合在线| 欧美三片在线视频观看| 美女视频网站久久| 国产日韩欧美制服另类| 91原创在线视频| 亚洲观看高清完整版在线观看| 91麻豆精品91久久久久久清纯| 精品一区二区免费在线观看| 欧美国产日韩精品免费观看| 91一区二区在线观看| 午夜视频久久久久久| 精品剧情在线观看| eeuss影院一区二区三区| 一区二区三区精品在线观看| 欧美男同性恋视频网站| 精品一区二区三区av| 中文字幕亚洲精品在线观看| 欧美日韩一区二区三区四区| 精品中文字幕一区二区小辣椒| 中文字幕av一区二区三区免费看 | 91精品国产色综合久久久蜜香臀| 日本系列欧美系列| 中文av一区特黄| 欧美午夜精品一区| 国产麻豆精品久久一二三| 亚洲视频在线一区观看| 91精品国产品国语在线不卡| 国产真实乱对白精彩久久| 亚洲视频每日更新| 欧美xxxxxxxx| 色呦呦国产精品| 免费的国产精品| 亚洲欧美日韩在线播放| 欧美一区二区三区啪啪| 成人福利视频在线| 日韩高清不卡一区二区三区| 国产精品毛片久久久久久久| 欧美欧美欧美欧美首页| 丁香桃色午夜亚洲一区二区三区| 亚洲狠狠爱一区二区三区| 26uuu国产一区二区三区| 色天天综合色天天久久| 精品中文av资源站在线观看| 一区二区在线观看免费视频播放| 欧美va亚洲va| 色老头久久综合| 国产伦精品一区二区三区视频青涩 | 男男视频亚洲欧美| 亚洲免费在线播放| 久久青草欧美一区二区三区| 欧美日韩中文一区| eeuss鲁一区二区三区| 久久国产精品99久久人人澡| 亚洲制服丝袜在线| 国产精品成人免费在线| 精品国产污污免费网站入口 | 日韩精品91亚洲二区在线观看| 中文字幕制服丝袜成人av| 精品理论电影在线观看 | 日本aⅴ精品一区二区三区 | 欧美婷婷六月丁香综合色| 国产凹凸在线观看一区二区| 麻豆国产欧美一区二区三区| 亚洲线精品一区二区三区| 国产精品久久久爽爽爽麻豆色哟哟| 欧美大片日本大片免费观看| 欧美日韩精品欧美日韩精品| 91免费精品国自产拍在线不卡| 国产一区二区福利| 九九视频精品免费| 日韩精品每日更新| 亚洲一级二级在线| 日韩美女久久久| 国产精品家庭影院| 欧美国产精品中文字幕| 精品久久久久久久久久久院品网| 欧美日韩卡一卡二| 欧美三级电影网| 色综合久久综合中文综合网| 成人免费观看男女羞羞视频| 狠狠网亚洲精品| 精品在线观看免费| 久久er精品视频| 青青草原综合久久大伊人精品优势| 亚洲一区二区三区美女| 一区二区三区免费看视频| 亚洲欧美另类图片小说| 亚洲欧洲在线观看av| 国产精品网曝门| 中文字幕的久久| 亚洲欧洲一区二区在线播放| 国产精品传媒入口麻豆| 国产精品国模大尺度视频| 国产精品电影一区二区三区| 国产精品网站在线观看| 国产精品国产三级国产有无不卡| 国产亚洲美州欧州综合国| 久久九九全国免费| 中文字幕av免费专区久久| 久久精品视频在线看| 国产网红主播福利一区二区| 中文字幕av一区二区三区高| 国产精品伦理在线| 亚洲三级免费观看| 一区二区三区久久久| 午夜精品久久久久影视| 肉丝袜脚交视频一区二区| 免费在线观看一区二区三区| 久久超级碰视频| 懂色av中文字幕一区二区三区| 99热国产精品| 欧美天堂一区二区三区| 91精品欧美福利在线观看| 精品福利av导航| 中文字幕日韩一区| 亚洲午夜影视影院在线观看| 免费在线观看日韩欧美|