Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 08.06.2009
Сообщений: 28
1

три наиболее удаленные друг от друга точки

17.06.2010, 23:24. Показов 804. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите, как Реализовать кнопку, при нажатии которой выбираются три наиболее удаленные друг от друга точки, точки соединяются мало заметными линиями. При нажатии заданной клавиши все три точки смещаются по линиям треугольника, занимая места соседних вершин треугольника.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
import java.applet.*;
import java.awt.event.*;
import java.awt.*;
 
 
public class kurs extends Applet  {
  public double A=2;
  public double B=8;
  public double x[]={3.5,  3.5, -3.5, -3.5, -A/2, -A/2,          A/2          , A/2};
  public double y[]={-B/2, B/2,  B/2, -B/2, -B/2, B/2-(3.5-A/2), B/2-(3.5-A/2),-B/2};
  public double xNew[]=new double[x.length];
  public double yNew[]=new double[y.length]; 
  public double xp[]={0.0,  3.0, 0.5, 2.1, -2.0, -0.5,-3.0,4.2};
  public double yp[]={-0.5, 4.0, 3.0, -3.4, 3.0, 1.0,-3.0,-3.0};
  public boolean find(double xr, double yr){
    if (xr>=-3.5&&xr<=3.5&&yr>=-B/2&&yr<=B/2)
      if (xr>-A/2&&xr<A/2&&yr>-B/2&&yr<B/2-(3.5-A/2)) return false;
      else return true;
    else return false;
  }
   
  public void init() {
  }
      
  public void paint(Graphics g){
      Font f1=new Font("Arial", Font.TRUETYPE_FONT, 20);  
      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(60*x[i]);
          yi[i]=300-(int)Math.round(60*y[i]);
      }
      g.fillPolygon(xi, yi, x.length);
    
      g.setXORMode(Color.white);
        // Рисуем ось х и у
      g.drawLine(10, 300, 600, 300); 
      g.drawLine(300, 10, 300, 600);    
        //деления оси Х и У
      g.setColor(Color.black);
      for (int i=-4; i<=4; i++) 
          if (i!=0) g.drawLine(300+60*i, 295, 300+60*i, 305);
      for (int i=-4; i<=4; i++) 
          if (i!=0) g.drawLine(295, 300+60*i, 305, 300+60*i);
        // подписываем деления
      g.setFont(f1);    
      for (int i=-3; i<=3; i++)
          if(i!=0){
              g.drawString(Integer.toString(i), 300+60*i, 320);
              g.drawString(Integer.toString(i), 310, 305-60*i);
          }  
      g.setColor(Color.black);      
      //таблица
     for (int i=-1; i<8; i++) g.drawRect(650, 50+30*i, 48, 28);
     for (int i=-1; i<8; i++) g.drawRect(700, 50+30*i, 78, 28);
     for (int i=-1; i<8; i++) g.drawRect(780, 50+30*i, 78, 28);
     for (int i=-1; i<8; i++) g.drawRect(860, 50+30*i, 58, 28);
      g.setFont(f1);
     for (int i=0; i<8; i++)
      g.drawString(Integer.toString(i+1), 665, 70+30*i);    
        
      g.setPaintMode();
      g.drawString("X", 580,325);
      g.drawString("Y", 305,30);
      g.setColor(Color.red);
      g.drawString("i", 670,40);
      g.drawString("x", 730,40);
      g.drawString("y", 810,40);
      g.drawString("+/-", 880,40);
      String s=null;
      
      
      for (int i=0; i<8; i++) {
            s=""; if (xp[i]>0) s=s+" ";
            s=s+Double.toString(xp[i]); g.drawString(s, 730, 70+30*i);
            s=""; if (yp[i]>0) s=s+" ";
            s=s+Double.toString(yp[i]); g.drawString(s, 800, 70+30*i);
            if (find(xp[i], yp[i])) g.drawString("+", 890, 70+30*i);
              else g.drawString("-", 890, 70+30*i);             
          }       
      // вывод точек с номерами и номеров в таблицу: 
      int xt, yt;
      for (int i=0; i<8; i++) {
          xt=300+(int)Math.round(60*xp[i]);
          yt=300-(int)Math.round(60*yp[i]);
          g.fillOval(xt-3, yt-3, 6, 6);
          g.drawString(Integer.toString(i+1), xt+3, yt-3);
      }
        }
  
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.06.2010, 23:24
Ответы с готовыми решениями:

Наиболее удаленные точки друг от друга
Координаты n точек на плоскости заданы в виде двумерного массива K. Найти номера двух точек,...

Найти две наиболее удаленные друг от друга точки
Здравствуйте, пытаюсь реализовать проект для работы с 3D объектами, у меня есть матрица, с которой...

Найти две наиболее удаленные друг от друга точки
Товарищи-господа, помогите, пожалуйста, абсолютному &quot;чайнику&quot;! Есть задача: &quot;Дано множество точек...

Найти две наиболее удаленные друга от друга точки в заданном множестве точек
Координаты n точек на плоскости заданы в виде двумерного массива K. Найти номера двух точек,...

0
17.06.2010, 23:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.06.2010, 23:24
Помогаю со студенческими работами здесь

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

Найти наименее удаленные друг от друга точки на плоскости
Приветствую ребята! Нужна помощь, помогите решить задачу на С++, Заранее благодарен. В файле...

Найти две наиболее удаленных друг от друга точки
Структуры: I. Решить задачу, используя структуру point для хранения координат точки: Множество...

Множество точек задано на плоскости; найти две наиболее удаленных друг от друга точки
Помогите, пожалуйста, написать программу на С++, используя структуру point для хранения координат...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru