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

📄 jtrackergui.java

📁 该代码仿真了雷达信号图像中目标的跟踪算法,采用了java编写的
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
					ymax = Math.max(ymax, sensorYmeter);					ymin = Math.min(ymin, sensorYmeter);					animating = true;					paused = false;					startThread();				}			}		}	}private class LeftPanel extends JPanel	{		public JTextField Qin, Xin, Yin, Xvel, Yvel, Xsensor, Ysensor, MCIter, Timestep, Npart;		public JComboBox DeltaT;		public JButton startButton, clearButton;		public JLabel Seperator;		public LeftPanel()		{			Qin = new JTextField("10");			Xin = new JTextField("500, 500");			Yin = new JTextField("10, 10, 1");			Xvel = new JTextField("-30");			Yvel = new JTextField("-30");			Xsensor = new JTextField("0");			Ysensor = new JTextField("0");			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.");			Yin.setToolTipText("Standard deviation of sensor error: range (m), range rate (m/s), angle (degrees).");			Xvel.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();			Xin.setPreferredSize(new Dimension(105, 22));			Yin.setPreferredSize(new Dimension(105, 22));			Xvel.setPreferredSize(new Dimension(105, 22));			Yvel.setPreferredSize(new Dimension(105, 22));			Xsensor.setPreferredSize(new Dimension(105, 24));			Ysensor.setPreferredSize(new Dimension(105, 24));			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());			Yin.addActionListener(new YinListener());			Xsensor.addActionListener(new XsensorListener());			Ysensor.addActionListener(new YsensorListener());			Ysensor.addMouseListener(new Ysmouse());			Xin.addMouseListener(new Xinmouse());			Yin.addMouseListener(new Yinmouse());			Xvel.addMouseListener(new Xvelmouse());			Yvel.addMouseListener(new Yvelmouse());			Xsensor.addMouseListener(new Xsmouse());			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(Yin, 1);			add(Xvel, 2);			add(Yvel, 3);			add(Xsensor, 4);			add(Ysensor, 5);			add(Seperator, 6); //add some space between the path and particle filter inputs			add(MCIter, 7);			add(Qin, 8);			add(Npart, 9);			add(Timestep, 10);			add(DeltaT, 11);			add(startButton, 12);			add(clearButton, 13);		}	}	private class Ysmouse implements MouseListener	{			public void mousePressed(MouseEvent e) {}			public void mouseReleased(MouseEvent e) {}			public void mouseClicked(MouseEvent e) {}			public void mouseEntered(MouseEvent e)			{				helpinfo.setText("Vertical position of the sensor location. (meters)");			}			public void mouseExited(MouseEvent e) {}	}	private class Xsmouse implements MouseListener	{			public void mousePressed(MouseEvent e) {}			public void mouseReleased(MouseEvent e) {}			public void mouseClicked(MouseEvent e) {}			public void mouseEntered(MouseEvent e)			{				helpinfo.setText("Horizontal position of the sensor location. (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 Yinmouse implements MouseListener	{			public void mousePressed(MouseEvent e) {}			public void mouseReleased(MouseEvent e) {}			public void mouseClicked(MouseEvent e) {}			public void mouseEntered(MouseEvent e)			{				helpinfo.setText("Standard deviation of sensor error: range (m), range rate (m/s), angle (degrees)");			}			public void mouseExited(MouseEvent e) {}	}	private class Xvelmouse 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 horizontal velocity. (meters/sec)");			}			public void mouseExited(MouseEvent e) {}	}	private class Yvelmouse 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 vertical velocity. (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 path.");			}			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;			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;			tryString = lp.Xvel.getText();			success = false;			while(!success)			{				try				{					xvelocity = Double.parseDouble(tryString);				}				catch (NumberFormatException exception)				{					dialogInput = JOptionPane.showInputDialog(null,"Please reenter x velocity.","Invalid x velocity",JOptionPane.ERROR_MESSAGE, null, null, tryString);					try{tryString = dialogInput.toString();}					catch(NullPointerException e){}					continue;				}				success=true;			}			lp.Xvel.setText(Double.toString(xvelocity));			tryString = lp.Yvel.getText();			success = false;			while(!success)			{				try				{					yvelocity = Double.parseDouble(tryString);				}				catch (NumberFormatException exception)				{					dialogInput = JOptionPane.showInputDialog(null,"Please reenter y velocity.","Invalid y velocity",JOptionPane.ERROR_MESSAGE, null, null, tryString);					try{tryString = dialogInput.toString();}					catch(NullPointerException e){}					continue;				}				success=true;			}			lp.Yvel.setText(Double.toString(yvelocity));			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));			tryString = lp.Xsensor.getText();			success = false;			while(!success)			{				try				{					sensorXmeter = Double.parseDouble(tryString);				}				catch (NumberFormatException exception)				{					dialogInput = JOptionPane.showInputDialog(null,"Please reenter sensor x position.","Invalid Sensor X",JOptionPane.ERROR_MESSAGE, null, null, tryString);					try{tryString = dialogInput.toString();}					catch(NullPointerException e){}					continue;				}				success=true;			}			lp.Xsensor.setText(Double.toString(sensorXmeter));			tryString = lp.Ysensor.getText();			success = false;			while(!success)			{				try				{					sensorYmeter = Double.parseDouble(tryString);				}				catch (NumberFormatException exception)				{					dialogInput = JOptionPane.showInputDialog(null,"Please reenter sensor y position.","Invalid Sensor Y",JOptionPane.ERROR_MESSAGE, null, null, tryString);					try{tryString = dialogInput.toString();}					catch(NullPointerException e){}					continue;				}				success=true;			}			lp.Ysensor.setText(Double.toString(sensorYmeter));			tryString = lp.Npart.getText();			success = false;			while(!success)			{				try				{					numParts = Integer.parseInt(tryString);				}				catch (NumberFormatException exception)				{					dialogInput = JOptionPane.showInputDialog(null,"Please reenter the number of particles.","Invalid number of particles",JOptionPane.ERROR_MESSAGE, null, null, tryString);					try{tryString = dialogInput.toString();}					catch(NullPointerException e){}					continue;				}				success=true;			}			lp.Npart.setText(Integer.toString(numParts));			tryString = lp.Timestep.getText();			success = false;			while(!success)			{				try				{					length = Integer.parseInt(tryString);				}				catch (NumberFormatException exception)				{					dialogInput = JOptionPane.showInputDialog(null,"Please reenter the number of time steps.","Invalid number of time steps",JOptionPane.ERROR_MESSAGE, null, null, tryString);					try{tryString = dialogInput.toString();}					catch(NullPointerException e){}					continue;				}				success=true;			}			lp.Timestep.setText(Integer.toString(length));			deltaT=lp.DeltaT.getSelectedIndex()+1;			fps = 1.0/deltaT;			pathErrorPanel.error=new double[length];			measErrorPanel.error=new double[length];			ploterror=false;			pathErrorPanel.repaint();			measErrorPanel.repaint();			tokenizer = new StringTokenizer(lp.Xin.getText(),"(), ", false);			token = (tokenizer.hasMoreTokens()) ? tokenizer.nextToken() : "x position";			success = false;			while(!success)			{				try				{					xin=Double.parseDouble(token);

⌨️ 快捷键说明

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