Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 24.05.2015, 18:12   #1 (permalink)
Asya_inter
Member
 
Аватар для Asya_inter
 
Регистрация: 12.01.2015
Сообщений: 71
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Изображение шара в Pascal

Изобразить гладкий красный шар, освещенный Солнцем. Как изобразить куб я знаю, а как шар затрудняюсь. Или нужно просто нарисовать окружность и на ней уже делать тени, блики свет, чтобы он стал объёмным? Подскажите пожалуйста!
Asya_inter вне форума   Ответить с цитированием

Старый 24.05.2015, 18:12
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Некоторые темы по содержанию очень напоминают вашу тему

Погрешности для вычисления объема шара. Численные методы
Создание развертки шара
Изображение пропадает

Старый 24.05.2015, 18:20   #2 (permalink)
Daniellos
Хозяин Медной Горы
 
Аватар для Daniellos
 
Регистрация: 01.08.2011
Адрес: Армавир
Сообщений: 11,850
Записей в дневнике: 8
Сказал(а) спасибо: 640
Поблагодарили 74 раз(а) в 23 сообщениях
Репутация: 46330
По умолчанию

Pascal это который 7.0 ?
Daniellos вне форума   Ответить с цитированием
Старый 24.05.2015, 18:55   #3 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,343
Сказал(а) спасибо: 288
Поблагодарили 507 раз(а) в 165 сообщениях
Репутация: 91953
По умолчанию

Цитата:
Сообщение от Asya_inter Посмотреть сообщение
Изобразить гладкий красный шар, освещенный Солнцем. Как изобразить куб я знаю, а как шар затрудняюсь. Или нужно просто нарисовать окружность и на ней уже делать тени, блики свет, чтобы он стал объёмным? Подскажите пожалуйста!
Вероятно, что-то в таком роде?
ball_1.jpg ball_2.jpg
Но тут действительно нужно знать, в каком Паскале это требуется. В графических заданиях такая информация обязательна.
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S на форуме   Ответить с цитированием
Старый 25.05.2015, 02:01   #4 (permalink)
Asya_inter
Member
 
Аватар для Asya_inter
 
Регистрация: 12.01.2015
Сообщений: 71
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
Вероятно, что-то в таком роде?
Да, именно (желательно такой, который слева)

Цитата:
Сообщение от Daniellos Посмотреть сообщение
Pascal это который 7.0 ?
Я и в Turbo и в ABC пишу, так что, без разницы. (но чаще на ABC).
Asya_inter вне форума   Ответить с цитированием
Старый 25.05.2015, 06:54   #5 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 14,453
Записей в дневнике: 56
Сказал(а) спасибо: 123
Поблагодарили 149 раз(а) в 61 сообщениях
Репутация: 59583
По умолчанию

Цитата:
Сообщение от Asya_inter Посмотреть сообщение
Я и в Turbo и в ABC пишу
Ну и в чем проблема? Вы не знаете, как организовать заливку?
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 25.05.2015, 11:53   #6 (permalink)
Asya_inter
Member
 
Аватар для Asya_inter
 
Регистрация: 12.01.2015
Сообщений: 71
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от AlexZir Посмотреть сообщение
Ну и в чем проблема? Вы не знаете, как организовать заливку?
Проблема в том, что я не знаю как сделать градацию света и тени, а также изобразить именно ГЛАДКИЙ, а не матовый шар. Если кто-то что-то знает, то поделитесь пожалуйста!
Asya_inter вне форума   Ответить с цитированием
Старый 25.05.2015, 14:18   #7 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,343
Сказал(а) спасибо: 288
Поблагодарили 507 раз(а) в 165 сообщениях
Репутация: 91953
По умолчанию

Цитата:
Сообщение от Asya_inter Посмотреть сообщение
а также изобразить именно ГЛАДКИЙ, а не матовый шар.
Увы-увы, у меня получается такой... шероховатый. В общем, надо издали смотреть и без очков - тогда нормально. Вот - в Turbo (Free):
Код:
Uses Graph, CRT;

Var
 R1,X1,Y1,X2,Y2,X,Y:Word;
 Sgm:Real;
 i:LongInt;

Procedure Gs(Sigma:Real; var Xg:Word; var Yg:Word);
var
 u,v,x,y:real;
begin
 u:=Random;
 v:=Random;
 x:=Sqrt(-Ln(v)*2)*Cos(u*2*Pi)*Sigma;
 y:=Sqrt(-Ln(v)*2)*Sin(u*2*Pi)*Sigma;
 if Sqrt(Sqr(X2+x-1.0*X1)+Sqr(1.0*Y2-y-Y1))>R1 then
  begin
   Xg:=X2;
   Yg:=Y2;
  end
 else
  begin
   Xg:=Round(1.0*X2+x);
   Yg:=Round(1.0*Y2-y);
  end;
end;

Begin
 InitGraph(...  { Тут - самостоятельно! }
 Randomize;
 SetBkColor(7);
 R1:=GetMaxY div 4;
 X1:=GetMaxX div 2;
 Y1:=GetMaxY div 2;
 SetColor(8);
 SetFillStyle(SolidFill,8);
 FillEllipse(X1,Y1,R1,R1);
 X2:=Round(X1+0.3*R1);
 Y2:=Round(Y1-0.3*R1);
 Sgm:=R1/3;  {Red}
 for i:=1 to 400000 do
  begin
   Gs(Sgm,X,Y);
   PutPixel(X,Y,4);
  end;
 Sgm:=R1/4;  {LightRed}
 for i:=1 to 80000 do
  begin
   Gs(Sgm,X,Y);
   PutPixel(X,Y,12);
  end;
 Sgm:=R1/5;  {Yellow}
 for i:=1 to 10000 do
  begin
   Gs(Sgm,X,Y);
   PutPixel(X,Y,14);
  end;
 ReadKey;
 CloseGraph;
End.
Миниатюры
fp01.jpg  
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S на форуме   Ответить с цитированием
Старый 30.05.2015, 01:05   #8 (permalink)
Asya_inter
Member
 
Аватар для Asya_inter
 
Регистрация: 12.01.2015
Сообщений: 71
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Vladimir_S, я знаю, что нужно использовать формулу расчета видимости яркости гладкой поверхности с учетом зеркального отражения(она на фото). Но как её применить я не знаю...Может вы знаете?aaa.jpg
Asya_inter вне форума   Ответить с цитированием
Старый 30.05.2015, 09:02   #9 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,343
Сказал(а) спасибо: 288
Поблагодарили 507 раз(а) в 165 сообщениях
Репутация: 91953
По умолчанию

Цитата:
Сообщение от Asya_inter Посмотреть сообщение
Vladimir_S, я знаю, что нужно использовать формулу расчета видимости яркости гладкой поверхности с учетом зеркального отражения(она на фото). Но как её применить я не знаю...Может вы знаете?
Догадываюсь... Вообще-то с этого (с выкладывания формул) и нужно было начинать. Но это - ой, сколько работы... Между прочим, всё равно поверхность шара получится, как и у меня - такой... ноздреватой. Потому что я не вижу иных средств сымитировать переменную яркость, кроме как густотой точек.
Ладно, раз примененное мною гауссово распределение не годится, попробую с косинусным.
P.S. Мгновенно не обещаю.
P.P.S. Но задачка - интересная.
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S на форуме   Ответить с цитированием
Старый 31.05.2015, 02:50   #10 (permalink)
Asya_inter
Member
 
Аватар для Asya_inter
 
Регистрация: 12.01.2015
Сообщений: 71
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Vladimir_S, буду очень рада, если подскажите! Получается, нельзя сделать плавного перехода в цвете?
Asya_inter вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Метки
pascal, задача, помощь

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 11:52.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.