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

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

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.09.2008, 21:03   #31
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
Интересно, как можно вычислить парад планет, если не соблюдать скорости вращения?
Парад планет будет определяться не ради самого парада, а ради перебора массива в цикле, в рамках урока. Как вам еще объяснить, это не урок астрономии, и не надо цепляться к словам.

А период обращения вокруг Солнца действительно единственный верный параметр (с небольшим округлением). Взят с сайта, адрес я указывал, все дальнейшие замечания туда.

p.s. Странно, что математики не возмущаются, или этот форум только среди астрономов популярен?
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 11.09.2008 в 21:07.
mutabor вне форума Ответить с цитированием
Старый 11.09.2008, 22:17   #32
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Да уж, ...цепляться можно ко всему. Например, с точки зрения астрономии, на Земле, вращающейся по такой орбите, никогда бы небыло времен года, ...догадались почему? ) ...здесь же все в упрощенном и доступном виде, для понимания новичкам как говориться "сама то".

mutabor, так ведь математики - в большинстве своем знакомы и с физикой, по сему коллайдером забиты мозги не до форумов )
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 18.09.2008, 10:27   #33
CyberOrcX
Заблокирован
Форумчанин
 
Регистрация: 27.04.2008
Сообщений: 103
По умолчанию

красивая штуковина, продолжайте тему! плиз.
мне хотелось бы посмотреть, как будут ходить планеты.
CyberOrcX вне форума Ответить с цитированием
Старый 18.09.2008, 22:12   #34
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Самому хотелось бы )

Я наверное немного поменяю принцип подачи материала, допишу программу, это будет быстрее, и краткие комментарии. Иначе есть угроза уроку остаться незаконченным.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 18.03.2009, 05:10   #35
AnaVare
 
Регистрация: 18.02.2009
Сообщений: 6
По умолчанию

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  Planets:array[0..50] of TImage;
  PlanetsPositions:array[1..50] of real;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var i:integer;

procedure PlanetView(var Planet:TImage; Radius:integer; Color:TColor);
begin
with Planet do
 begin
 Width:=2*Radius;
 Height:=2*Radius;
 Top:=(Form1.ClientHeight div 2)-Radius;
 Left:=(Form1.ClientWidth div 2)-Radius;
 Canvas.Pen.Color:=Form1.Color;
 Canvas.Brush.Color:=Form1.Color;
 Canvas.Rectangle(0,0,Planet.Width,Planet.Height);
 Canvas.Brush.Color:=Color;
 Canvas.Pen.Color:=Color;
 Canvas.Ellipse(0,0,Planet.Width,Planet.Height);
 Visible:=True;
 end;
end;

BEGIN
Form1.Width:=700;
Form1.Height:=700;
Form1.Color:=clBlue;
for i:=0 to 50 do
 begin
 Planets[i]:=TImage.Create(Self);
 with Planets[i] do
  begin
  Parent:=Form1;
  AutoSize:=False;
  Visible:=False;
  end;
 end;

randomize;
for i:=1 to 50 do
 begin
 PlanetsPositions[i]:=Random(360);
 end;

PlanetView(Planets[0],40,clYellow);
PlanetView(Planets[1],3,clRed);
PlanetView(Planets[2],5,clGray);
PlanetView(Planets[3],6,clGreen);
PlanetView(Planets[4],2,clWhite);
PlanetView(Planets[5],7,clRed);
PlanetView(Planets[6],3,clMaroon);
PlanetView(Planets[7],2,clMaroon);
PlanetView(Planets[8],15,clWhite);
END;

procedure TForm1.Timer1Timer(Sender: TObject);

procedure PlanetOrbit(var Planet:TImage; var position:real; velocity:real; distance,direction:integer);
var x,y:integer;
begin
position:=position+velocity;
x:=Trunc(direction*Distance*cos(position))-(Planet.Width div 2);
y:=Trunc(Distance*sin(position))-(Planet.Height div 2);
Planet.Top:=(Planets[0].Top+(Planets[0].Height div 2))+y;
Planet.Left:=(Planets[0].Left+(Planets[0].Width div 2))+x;
if position>=360 then position:=0;
end;

procedure SatelliteOrbit(Planet:TImage; var Satellite:TImage; var position:real; velocity:real; distance,direction:integer);
var x,y:integer;
begin
position:=position+velocity;
x:=Trunc(direction*Distance*cos(position))-(Satellite.Width div 2);
y:=Trunc(Distance*sin(position))-(Satellite.Height div 2);
Satellite.Top:=(Planet.Top+(Planet.Height div 2))+y;
Satellite.Left:=(Planet.Left+(Planet.Width div 2))+x;
if position>=360 then position:=0;
end;

begin
PlanetOrbit(Planets[1],PlanetsPositions[1],0.09,50,1);
PlanetOrbit(Planets[2],PlanetsPositions[2],0.08,70,1);
PlanetOrbit(Planets[3],PlanetsPositions[3],0.05,100,-1);
SatelliteOrbit(Planets[3],Planets[4],PlanetsPositions[4],0.15,15,1);
PlanetOrbit(Planets[5],PlanetsPositions[5],0.04,150,1);
SatelliteOrbit(Planets[5],Planets[6],PlanetsPositions[6],0.06,15,1);
SatelliteOrbit(Planets[5],Planets[7],PlanetsPositions[7],0.09,22,1);
PlanetOrbit(Planets[8],PlanetsPositions[8],0.1,180,-1);
end;

end.
AnaVare вне форума Ответить с цитированием
Старый 18.03.2009, 07:49   #36
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Цитата:
Сообщение от BangBangFM Посмотреть сообщение


Замучил прикалываться. Между прочем пояс остеройдов тоже когдато был планетой, че теперь и его делать?
К стати, пояс астероидов никогда небыл планетой, гравитация Юпитера не позволила ей сформироаться.

Цитата:
Да уж, ...цепляться можно ко всему. Например, с точки зрения астрономии, на Земле, вращающейся по такой орбите, никогда бы небыло времен года, ...догадались почему? )
Почему? Вытянутость орбиты земли никак не влияет на времена года, чисто на зметку, когда у нас зима (в северном полушарии) то земля находится ближе всегок солнцу. ПРичина смены времен года наклон земной оси, а не ее орбита вокруг солнца.
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс

Последний раз редактировалось ROD; 18.03.2009 в 07:55.
ROD вне форума Ответить с цитированием
Старый 18.03.2009, 13:11   #37
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,690
По умолчанию

На днях вот такую планету сделал:

Delphi/Direct3D/WinAPI
Вложения
Тип файла: rar earth.rar (910.8 Кб, 71 просмотров)

Последний раз редактировалось Kostia; 18.03.2009 в 13:16.
Kostia вне форума Ответить с цитированием
Старый 18.03.2009, 16:41   #38
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

ROD, ну вот видишь, всем свойственно ошибаться, ...а ведь кто-то был уверен (например я), ...но на счет 8 планет и астероида это точно )))
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 18.03.2009, 20:12   #39
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Kostia, очень красиво, правда четко видна граница текстуры (там в тихом океане полоса (край рисунка) а рядом с ней резко отличающиеся по цвету участки, а так вообще замечатльно.

P.S.
А где ты такую картинку достал?
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Старый 19.03.2009, 04:20   #40
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,690
По умолчанию

Стык этот от неправильно нарисованной модели в 3ds max, а другую сферу сделать не могу, Autodesk 3ds Max Design 2009 32-bit не хочет устанавливать текстурные координаты на весь объект, а устанавливает размер текстуры и заполняет ей всю сферу и получается бяка. Если кто поделится нормальной моделькой сферы из 3ds max 9, буду благодарен.

Цитата:
А где ты такую картинку достал?
Google

http://www.3domen.org/modules/files/viewcat.php?cid=47
http://visibleearth.nasa.gov/view_detail.php?id=2433
http://www.celestiamotherlode.net/catalog/earth.php

Последний раз редактировалось Kostia; 19.03.2009 в 13:03. Причина: исправил ошибки
Kostia вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Знакомство с одноклассниками Alar Свободное общение 10 03.07.2008 22:20
Файловая система student_63 Win Api 1 12.04.2008 20:29
Система координат SunKnight Общие вопросы Delphi 2 05.02.2008 19:42