⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jtrackerguimote.java

📁 该java代码给出了粒子滤波器的编程仿真,有一个仿真的界面
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
					for(int scount=0; scount<NumSens; scount++)					{						xmax = Math.max(xmax, SLoc[0][scount]);						xmin = Math.min(xmin, SLoc[0][scount]);						ymax = Math.max(ymax, SLoc[1][scount]);						ymin = Math.min(ymin, SLoc[1][scount]);					}					numParts = Integer.parseInt(lp.Npart.getText());					animating = true;					paused = false;					startThread();				}			}		}	}private class LeftPanel extends JPanel	{		public JTextField Qin, Xin, SensError, Vel, MCIter, Timestep, Npart;		public JTextField[] Sensors;		public JComboBox DeltaT;		public JButton startButton, clearButton;		public JLabel Seperator;		public LeftPanel()		{			Sensors = new JTextField[5];			Sensors[0] = new JTextField("0, 8");			Sensors[1] = new JTextField("-2, 0");			Sensors[2] = new JTextField("10, 13");			Sensors[3] = new JTextField("-7, -7");			Sensors[4] = new JTextField("12, 0");			Qin = new JTextField("0.01");			Xin = new JTextField("15, 12");			SensError = new JTextField("0.5");			Vel = new JTextField("-1, -1");			MCIter = new JTextField("2");			Timestep = new JTextField("50");			Npart = new JTextField("1000");			DeltaT = new JComboBox();			startButton = new JButton();			clearButton = new JButton();/*			Qin.setToolTipText("Set the noise/interference from the sensor.");			Xin.setToolTipText("Initial coordinates of the target in meters: x, y.");			SensError.setToolTipText("Standard deviation of sensor error: range (m), range rate (m/s), angle (degrees).");			Vel.setToolTipText("The target's horizontal velocity. (meters/sec)");			Yvel.setToolTipText("The target's vertical velocity. (meters/sec)");			Xsensor.setToolTipText("Horizontal position of the sensor location. (meters)");			Ysensor.setToolTipText("Vertical position of the sensor location. (meters)");			MCIter.setToolTipText("Numer of Monte Carlo iterations for the simulation.");			Timestep.setToolTipText("Number of time increments per MC iteration");			Npart.setToolTipText("Number of Monte Carlo samples");			DeltaT.setToolTipText("Length of each increment (seconds)");			startButton.setToolTipText("Click Button to start tracking simulation.");			clearButton.setToolTipText("Click Button to reset to defaults.");*/			DeltaT.addItem("1 sec");			DeltaT.addItem("2 sec");			DeltaT.addItem("3 sec");			DeltaT.addItem("4 sec");			DeltaT.setBackground(new Color(10, 238, 99));			DeltaT.setPreferredSize(new Dimension(50, 18));			Seperator = new JLabel();			Sensors[0].setPreferredSize(new Dimension(105,20));			Sensors[1].setPreferredSize(new Dimension(105,20));			Sensors[2].setPreferredSize(new Dimension(105,20));			Sensors[3].setPreferredSize(new Dimension(105,20));			Sensors[4].setPreferredSize(new Dimension(105,20));			Xin.setPreferredSize(new Dimension(105, 22));			SensError.setPreferredSize(new Dimension(105, 22));			Vel.setPreferredSize(new Dimension(105, 22));			MCIter.setPreferredSize(new Dimension(105, 18));			Seperator.setPreferredSize(new Dimension(105, 40));			Qin.setPreferredSize(new Dimension(105, 18));			Timestep.setPreferredSize(new Dimension(105, 18));			Npart.setPreferredSize(new Dimension(105, 18));			DeltaT.setPreferredSize(new Dimension(105, 18));			startButton.setPreferredSize(new Dimension(100,55));			Xin.addActionListener(new XinListener());			SensError.addActionListener(new SensErrorListener());			Vel.addActionListener(new VelListener());			Sensors[0].addActionListener(new Sensor1Listener());			Sensors[1].addActionListener(new Sensor2Listener());			Sensors[2].addActionListener(new Sensor3Listener());			Sensors[3].addActionListener(new Sensor4Listener());			Sensors[4].addActionListener(new Sensor5Listener());			Sensors[0].addMouseListener(new Sensmouse());			Sensors[1].addMouseListener(new Sensmouse());			Sensors[2].addMouseListener(new Sensmouse());			Sensors[3].addMouseListener(new Sensmouse());			Sensors[4].addMouseListener(new Sensmouse());			Xin.addMouseListener(new Xinmouse());			SensError.addMouseListener(new SensErrormouse());			Vel.addMouseListener(new Velmouse());			MCIter.addMouseListener(new MCmouse());			Qin.addMouseListener(new Qinmouse());			Timestep.addMouseListener(new Timemouse());			Npart.addMouseListener(new Npartmouse());			DeltaT.addMouseListener(new Deltamouse());			Icon starticon = new ImageIcon( getClass().getResource("startbutton.JPG"));			startButton.setIcon(starticon);	//		startButton = new JButton("Start");			clearButton = new JButton("Reset");			startButton.addActionListener(new startListener());			clearButton.addActionListener(new clearListener());			startButton.addMouseListener(new starmouse());			clearButton.addMouseListener(new clearmouse());			setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));			add(Xin, 0);			add(SensError, 1);			add(Vel, 2);			add(Sensors[0], 3);			add(Sensors[1], 4);			add(Sensors[2], 5);			add(Sensors[3], 6);			add(Sensors[4], 7);			add(MCIter, 8);			add(Qin, 9);			add(Npart, 10);			add(Timestep, 11);			add(DeltaT, 12);			add(startButton, 13);			add(clearButton, 14);		}	}	private class Sensmouse implements MouseListener	{			public void mousePressed(MouseEvent e) {}			public void mouseReleased(MouseEvent e) {}			public void mouseClicked(MouseEvent e) {}			public void mouseEntered(MouseEvent e)			{				helpinfo.setText("Position of the sensor location: x, y. (meters)");			}			public void mouseExited(MouseEvent e) {}	}	private class Xinmouse implements MouseListener	{			public void mousePressed(MouseEvent e) {}			public void mouseReleased(MouseEvent e) {}			public void mouseClicked(MouseEvent e) {}			public void mouseEntered(MouseEvent e)			{				helpinfo.setText("Initial coordinates of the target in meters: x, y");			}			public void mouseExited(MouseEvent e) {}	}	private class SensErrormouse implements MouseListener	{			public void mousePressed(MouseEvent e) {}			public void mouseReleased(MouseEvent e) {}			public void mouseClicked(MouseEvent e) {}			public void mouseEntered(MouseEvent e)			{				helpinfo.setText("Variance of sensor error.");			}			public void mouseExited(MouseEvent e) {}	}	private class Velmouse implements MouseListener	{			public void mousePressed(MouseEvent e) {}			public void mouseReleased(MouseEvent e) {}			public void mouseClicked(MouseEvent e) {}			public void mouseEntered(MouseEvent e)			{				helpinfo.setText("The target's initial velocity: x,y. (meters/sec)");			}			public void mouseExited(MouseEvent e) {}	}	private class MCmouse implements MouseListener	{			public void mousePressed(MouseEvent e) {}			public void mouseReleased(MouseEvent e) {}			public void mouseClicked(MouseEvent e) {}			public void mouseEntered(MouseEvent e)			{				helpinfo.setText("Numer of Monte Carlo iterations for the simulation.");			}			public void mouseExited(MouseEvent e) {}	}	private class Timemouse implements MouseListener	{			public void mousePressed(MouseEvent e) {}			public void mouseReleased(MouseEvent e) {}			public void mouseClicked(MouseEvent e) {}			public void mouseEntered(MouseEvent e)			{				helpinfo.setText("Number of time increments per MC iteration");			}			public void mouseExited(MouseEvent e) {}	}	private class Deltamouse implements MouseListener	{			public void mousePressed(MouseEvent e) {}			public void mouseReleased(MouseEvent e) {}			public void mouseClicked(MouseEvent e) {}			public void mouseEntered(MouseEvent e)			{				helpinfo.setText("Length of each increment (seconds)");			}			public void mouseExited(MouseEvent e) {}	}	private class Npartmouse implements MouseListener	{			public void mousePressed(MouseEvent e) {}			public void mouseReleased(MouseEvent e) {}			public void mouseClicked(MouseEvent e) {}			public void mouseEntered(MouseEvent e)			{				helpinfo.setText("Number of Monte Carlo samples");			}			public void mouseExited(MouseEvent e) {}	}	private class Qinmouse implements MouseListener	{			public void mousePressed(MouseEvent e) {}			public void mouseReleased(MouseEvent e) {}			public void mouseClicked(MouseEvent e) {}			public void mouseEntered(MouseEvent e)			{				helpinfo.setText("Set the noise/interference from the sensor.");			}			public void mouseExited(MouseEvent e) {}	}	private class starmouse implements MouseListener	{			public void mousePressed(MouseEvent e) {}			public void mouseReleased(MouseEvent e) {}			public void mouseClicked(MouseEvent e) {}			public void mouseEntered(MouseEvent e)			{				helpinfo.setText("Click Button to Start Tracking Simulation");			}			public void mouseExited(MouseEvent e) {}	}	private class clearmouse implements MouseListener	{			public void mousePressed(MouseEvent e) {}			public void mouseReleased(MouseEvent e) {}			public void mouseClicked(MouseEvent e) {}			public void mouseEntered(MouseEvent e)			{				helpinfo.setText("Click Button to Reset to Defaults.");			}			public void mouseExited(MouseEvent e) {}	}	private class startListener implements ActionListener	{		private String tryString;		public void actionPerformed (ActionEvent event)		{			animator = null;			paused = false;			frame = 0;			//-------------------------------------------			//Get number of Monte Carlo runs			//-------------------------------------------			tryString = lp.MCIter.getText();			success = false;			while(!success)			{				try				{					niter = Integer.parseInt(tryString);				}				catch (NumberFormatException exception)				{					dialogInput = JOptionPane.showInputDialog(null,"Please reenter the number of iterations.","Invalid MC iterations",JOptionPane.ERROR_MESSAGE, null, null, tryString);					try{tryString = dialogInput.toString();}					catch(NullPointerException e){}					continue;				}				success=true;			}			lp.MCIter.setText(Integer.toString(niter));			MC = niter;			//-------------------------------------------			//Get initial velocity			//-------------------------------------------			tokenizer = new StringTokenizer(lp.Vel.getText(),"(), ", false);			token = (tokenizer.hasMoreTokens()) ? tokenizer.nextToken() : "x velocity";			success = false;			while(!success)			{				try				{					xin=Double.parseDouble(token);				}				catch (NumberFormatException exception)				{					dialogInput = JOptionPane.showInputDialog(null,"Please reenter initial x velocity.","Invalid x velocity",JOptionPane.ERROR_MESSAGE, null, null, token);					try{token = dialogInput.toString();}					catch(NullPointerException e){}					continue;				}				success=true;			}			token = (tokenizer.hasMoreTokens()) ? tokenizer.nextToken() : "y velocity";			success = false;			while(!success)			{				try				{					yin=Double.parseDouble(token);				}				catch (NumberFormatException exception)				{					dialogInput = JOptionPane.showInputDialog(null,"Please reenter initial y velocity.","Invalid y velocity",JOptionPane.ERROR_MESSAGE, null, null, token);					try{token = dialogInput.toString();}					catch(NullPointerException e){}					continue;				}				success=true;			}			xvelocity = xin;			yvelocity = yin;			lp.Vel.setText(Double.toString(xin)+", "+Double.toString(yin));			//-------------------------------------------			//Get Q value			//-------------------------------------------			tryString = lp.Qin.getText();			success = false;			while(!success)			{				try				{					Qval = Double.parseDouble(tryString);				}				catch (NumberFormatException exception)				{					dialogInput = JOptionPane.showInputDialog(null,"Please reenter Q (noise intensity).","Invalid Q value",JOptionPane.ERROR_MESSAGE, null, null, tryString);					try{tryString = dialogInput.toString();}					catch(NullPointerException e){}					continue;				}				success=true;			}			lp.Qin.setText(Double.toString(Qval));			//----------------------------------------------------			//Get Sensor 1 position			//----------------------------------------------------			tokenizer = new StringTokenizer(lp.Sensors[0].getText(),"(), ", false);			token = (tokenizer.hasMoreTokens()) ? tokenizer.nextToken() : "x position";			success = false;			while(!success)			{				try				{					xin=Double.parseDouble(token);				}				catch (NumberFormatException exception)				{					dialogInput = JOptionPane.showInputDialog(null,"Please reenter Sensor 1 x position.","Invalid x position",JOptionPane.ERROR_MESSAGE, null, null, token);					try{token = dialogInput.toString();}					catch(NullPointerException e){}					continue;				}				success=true;			}			token = (tokenizer.hasMoreTokens()) ? tokenizer.nextToken() : "y position";			success = false;			while(!success)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -