Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.07.2010, 16:40   #1
varlonec
Пользователь
 
Регистрация: 10.12.2009
Сообщений: 24
По умолчанию Организовать перемещение точек java

подскажите хоть какие нибудь идеи как мне это сделать:

организовать перемещение точек путем наведения указателя мыши на точку с последующей буксировкой точки в нужное место окна.

вот мой код:


Код:
import java.applet.*;
import java.awt.event.*;
import java.awt.*;

public class kurs extends Applet implements KeyListener{
	public double A=3;
    public double B=10;

  //Для задания двойной буферизации
    public int w=1000;//ширина буфера
    public int h=600;//высота буфера
    public Image buf=null;
        
    public double t=0;
    public int k; 
   
    public double xp[]={5, 2, 3};
    public double yp[]={  3, 2, 3};
   
  // public void init(){
	// addKeyListener(this);  
 //  }
	
	
    //строим график
    public void paint(Graphics gr){
   	 requestFocus(); 
   	 buf=createImage(w,h);
   	 Graphics g=buf.getGraphics();
   	 
   	 
   	 Font f1=new Font("Arial", Font.TRUETYPE_FONT, 18); 
 	 Font f2=new Font("Arial", Font.TRUETYPE_FONT, 20);
 	 double x[]={ 7.5,   7.5, 7.5-A, 7.5-A, A/2,   A/2,  -A/2, -A/2, -7.5+A, -7.5+A,  
	           -7.5, -7.5};
     double y[]={-A/2, B-A/2, B-A/2,   A/2, A/2, B-A/2, B-A/2,  A/2,    A/2,  B-A/2, 
	           B-A/2, -A/2};   
   	    
     g.setColor(Color.black);    
 	  	
 	  	 int xi[]=new int[x.length];
 	  	 int yi[]=new int[x.length];
 	  	 for (int i=0; i<x.length; i++){
 	  		 xi[i]=300+(int)Math.round(30*x[i]);
 	  		 yi[i]=300-(int)Math.round(30*y[i]);
 	  	 }
 	  	 g.fillPolygon(xi, yi, x.length);
 	  

	  	 
	  	 
	  	 g.setXORMode(Color.white);
 		// Рисуем ось х и у
 	  	 g.drawLine(10, 300, 590, 300); 
 	  	 g.drawLine(300, 10, 300, 590);  	
 		//деления оси и подписи Х и У 
 	  	 g.setFont(f1);
 	  	 g.setColor(Color.black);
 	  	 for (int i=-8; i<=8; i++) {
 	  		 if (i!=0) {
 	  			 g.drawLine(300+30*i, 295, 300+30*i, 305);
 	  			 g.drawLine(295, 300+30*i, 305, 300+30*i);
 	  			 g.drawString(Integer.toString(i), 300+30*i, 320);
 	  			 g.drawString(Integer.toString(i), 310, 305-30*i);
	  		 }
 	  	 }
 	  	  
 	  	 g.setFont(f2);
 	  	 g.drawString("^", 297, 18);
 	  	 g.drawString(" Y", 305, 24);
 	  	 g.drawString(" X", 595, 300);
 	  	 g.drawString(">", 585, 308);
	     gr.drawImage(buf, 0,0,null);
 	 }
    
     public void update(Graphics g){
    	 paint(g);
     }
    public void keyPressed(KeyEvent e){
      int m=e.getKeyCode();
      if (m==e.VK_LEFT&&A>0) {         //для уменьшения А
    	A-=0.1; repaint(); }
      else if (m==e.VK_RIGHT&&A<5.1) { //для увеличения А
    	A+=0.1; repaint(); }
      
      
      if (m==e.VK_UP&&B>0/*&&B-A/2>0.1&&A>0*/) {// для уменьшения В
			  B=B-0.1;

			  repaint();
		  }
		  if (m==e.VK_DOWN&&B<10/*&&B<10*/) { // для увеличения В
		 	  B=B+0.1;
			  repaint();}
    
  
	
    
    }
   


    public void keyTyped(KeyEvent e){}
    public void keyReleased(KeyEvent e){}
     
}
заранее спасибо

Последний раз редактировалось Stilet; 05.07.2010 в 09:02.
varlonec вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
20 точек Dicar Помощь студентам 1 01.04.2010 11:12
определить радиус и центр окружности, на кот. лежит наиб.число точек заданного на плоскости мн-ва точек) kcю Помощь студентам 0 17.11.2009 19:50
Помогите справиться с java.lang.OutOfMemoryError: Java heap space Levilaulada Помощь студентам 1 17.05.2009 10:59