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

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

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.03.2014, 21:51   #1
P91
Пользователь
 
Регистрация: 20.10.2012
Сообщений: 21
По умолчанию Заливка треугольника

Помогите пожалуйста!!!! Написал код, в котором рисуется закрашенный треугольник, но закраска идёт слишком быстро. Как сделать, чтобы треугольник закрашивался медленно??? Чтобы было видно, как происходит заливка??? (язык программирования JAVA SE)
Код:
Код:
.......
c=new Color(255,255,255);
c=colc.showDialog(form,"Выбор цвета", c); 
  R=c.getRed();
  G=c.getGreen();
  B=c.getBlue(); 
  pc.cl=c; 
  pc.repaint();
.......
   Color c1=new Color(250,30,250);
......   
   int nPoints = 3;
   int[] xPoints = new int[nPoints+1];
   int[] yPoints = new int[nPoints+1];
   for(int i=0; i<nPoints; i++)
   {
       double angle = 2*Math.PI *i/nPoints;
       xPoints[i] = (int)(150 + 75*Math.sin(angle));
       yPoints[i] = (int)(100 - 40*Math.cos(angle));
   }
   g2d.setColor(cl);
   g2d.fillPolygon(xPoints, yPoints, nPoints);
........
P91 вне форума Ответить с цитированием
Старый 04.03.2014, 22:14   #2
Smogg
Участник клуба
 
Регистрация: 14.06.2011
Сообщений: 1,138
По умолчанию

поставить в теле цикла задержку.
Я почти уверен, что в Джаве функция Sleep(delay) присутствует и делает то же, что и в С++.
Smogg вне форума Ответить с цитированием
Старый 04.03.2014, 22:30   #3
P91
Пользователь
 
Регистрация: 20.10.2012
Сообщений: 21
По умолчанию

Так??? Но тогда просто задерживается время начала заливки, а фигура всё равно закрашивается быстро.
Код:
 int n1Points = 3;
   int[] x1Points = new int[n1Points+1];
   int[] y1Points = new int[n1Points+1];
   for(int j=0; j<n1Points; j++)
   {
	   try
	   {
	    Thread.sleep(2000);
	    double angle1 = 2*Math.PI *j/nPoints;
	    x1Points[j] = (int)(150 + 85*Math.sin(angle1));
	    y1Points[j] = (int)(160 - 50*Math.cos(angle1));
	   }
	   catch (InterruptedException e)
	   {
	   }
   }
P91 вне форума Ответить с цитированием
Старый 04.03.2014, 23:52   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от P91 Посмотреть сообщение
Так??? Но тогда просто задерживается время начала заливки, а фигура всё равно закрашивается быстро.
а если попробовать так?

Код:
 int n1Points = 3;
   int[] x1Points = new int[n1Points+1];
   int[] y1Points = new int[n1Points+1];
   for(int j=0; j<n1Points; j++)
   {
	   try
	   {
	    double angle1 = 2*Math.PI *j/nPoints;
	    x1Points[j] = (int)(150 + 85*Math.sin(angle1));
	    y1Points[j] = (int)(160 - 50*Math.cos(angle1));
	    Thread.sleep(1000);
                 Application.DoEvents();
	   }
	   catch (InterruptedException e)
	   {
	   }
   }
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.03.2014, 07:26   #5
P91
Пользователь
 
Регистрация: 20.10.2012
Сообщений: 21
По умолчанию

Ошибку выдаёт в строчке:
Код:
Application.DoEvents();
P91 вне форума Ответить с цитированием
Старый 05.03.2014, 13:33   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от P91 Посмотреть сообщение
Ошибку выдаёт в строчке:
Код:
Application.DoEvents();
ой. ну и правильно выдаёт.
я же Вам код для C# написал, а Вам для Java SE нужно!
извините, что косякнул!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даны три сторони треугольника a,b,c, написать программу для вычисления трёх высот данного треугольника giganto97 Паскаль, Turbo Pascal, PascalABC.NET 4 13.10.2013 11:00
Даны декартовы координаты вершин треугольника (в плоскости). Разработать проект, вычисляющий площадь и периметр этого треугольника Яночка190 Общие вопросы Delphi 1 12.01.2013 12:49
Дано 3 точки своими координатами х,у. Будет ли они вершинами треугольника. Если да - найти периметр и площадь треугольника Arhi555 Паскаль, Turbo Pascal, PascalABC.NET 2 11.09.2012 17:46
процедуры и функции - возможно ли построение треугольника по длинам сторон, вычисление площади треугольника по длинам сторон kazbek1 Паскаль, Turbo Pascal, PascalABC.NET 2 18.05.2012 10:38
Delphi заливка треугольника графика Toni Milano Помощь студентам 14 02.10.2010 17:22