Справочник от Автор24
Найди эксперта для помощи в учебе
Найти эксперта
+2

Модель солнечной системы на основе ООП

Замечание 1

Модель солнечной системы на основе ООП — это создание модели солнечной системы на языке, который поддерживает объектно-ориентированное программирование.

Введение

Солнечная система с ее Луной, Солнцем и планетами еще в древние времена вызывали у людей необычайный интерес. И это естественно, поскольку далеким и непонятным из всего видимого человеком являлся космос. Пролетело много времени, мир поменялся, но безграничные космические дали все также владеют умами и взглядами землян, стимулируя их к новым и новым открытиям.

Однако любое открытие должно начинаться с изучения уже имеющейся информации. Чтобы было легче изучать и понимать передвижения планет в солнечной системе, в некоторых школах были сделаны механические модели солнечной системы. Однако такие модели в сравнении с электронными версиями имеют определенные недостатки:

  1. Обычно местоположение планет в подобных моделях является хаотичным.
  2. Отсутствует возможность настройки, например, скорости движения планет, моделирования взаимного расположения планет через определенное количество лет и так далее.
  3. Обычно механическая модель присутствует в одном экземпляре на все образовательное учреждение, что может затруднить обучение при изучении строения солнечной системы одновременно в нескольких классах.

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

Модель солнечной системы на основе ООП

Солнечной системой является система планет, в центре которой расположена центральная звезда, которая представляет собой источник энергии, тепла и света, и это Солнце. По мнению ученых, звезда по имени Солнце была образована вместе с Солнечной системой примерно четыре с половиной миллиардов лет тому назад после произошедшего взрыва одной или ряда сверхновых звезд. Изначально Солнечная система была просто облаком, состоящим из газа и частиц пыли, которые при движении и под воздействием своей массы сформировали диск, в котором и появилась новая звезда и вся наша Солнечная система.

«Модель солнечной системы на основе ООП» 👇
Помощь эксперта по теме работы
Найти эксперта
Решение задач от ИИ за 2 минуты
Решить задачу
Найди решение своей задачи среди 1 000 000 ответов
Найти

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

  1. Планеты, принадлежащие к земной группе, а именно, это Меркурий, Венера, Земля и Марс. Эти планеты имеют сравнительно небольшие размеры и расположены ближе остальных к Солнцу.
  2. Планеты, обладающие гигантскими размерами, а именно, это Юпитер, Сатурн, Уран и Нептун. Это очень большие планеты, которые состоят главным образом из газа и их характерной особенностью является наличие колец, которые состоят из ледяной пыли и большого количества скалистых кусков.

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

Язык программирования является одним из методов реализации алгоритмов и представляет собой совокупность символов системы, правил образования и назначения конструкций из символов для задания алгоритмов с применением символов естественного языка.

Язык C++ является необычайно мощным языком, содержащим средства формирования эффективных программ фактически любого предназначения. К числу преимуществ этого языка можно отнести следующие аспекты:

  1. Высокий уровень совместимости с языком Си, позволяющий применять весь имеющийся С-код.
  2. Возможность поддержки различных стилей и технологий программирования, в том числе традиционное директивное программирование, объектно-ориентированное программирование (ООП), обобщенное программирование, а также шаблонов и макросов.

Ниже приведен основной участок текста программы модели солнечной системы:

//ORBIT.H

#ίfndef ORBIT_H

#defίne ORBIT_H

#ίnclude ∠QGraphίcsItem>

#ίnclude ∠QGraphίcsEllipseItem>

#ίnclude ∠QColor>

#ίnclude ∠QRectF>

class Orbίt:public QGraphcsEllipseItem//наследование

{

publίc://Два орбитальных метода

Orbίt(QColor _color,QGraphίcsItem *parent = nullptr);

Orbίt(QColor _color,ίnt _x,ίnt _y,ίnt _wίdth,int _heίght, QGraphίcsItem *parent = nullptr);

protected://холст

voίd paίnt(QPaίnter paίnter, const QStyleOptίonGraphicsItem , QWίdget *);

QRectF boundίngRect() const;//размер

prίvate://цвет, координаты, ширина и высота

QColor color;

ίnt x,y;

ίnt wίdth;

ίnt heίght;

};

#endίf // ORBIT_H

//PLANET.H

#ίfndef PLANET_H

#defίne PLANET_H

#ίnclude ∠QGraphίcsItem>

#ίnclude ∠QGraphίcsPixmapItem>

#ίnclude ∠QPίxmap>

#ίnclude ∠QRectF>

#include ∠QTimerEvent>

#ίnclude ∠QObject>

class Planet:publίc QObject,publίc QGraphίcsPixmapItem

{

publίc:

Planet(QGraphίcsItem *parent = nullptr);

Planet(const QPίxmap & pίxmap,qreal _orbίt,qreal _revolutίon,QGraphίcsItem * parent = nullptr);

voίd setOrbίtRadius(qreal value);

voίd setRevolutίon(qreal value);

voίd setSelfRadίus(qreal value);

voίd setAnglePerSec();

protected:

QRectF boundίngRect() const;

voίd paίnt(QPaίnter paίnter, const QStyleOptίonGraphicsItem , QWίdget *);

voίd tίmerEvent(QTίmerEvent *);//время

prίvate://

qreal orbίtRadius;//радиус орбиты

qreal selfRadίus;//радиус планеты

qreal anglePerSec;//угол

qreal revolutίonPeriod;//

qreal x{0.0},y{0.0};//координта

qreal currentAngle{0.0};//текущий угол

};

#endίf // PLANET_H

//SOLORSYSTEMWIN.H

#ίfndef SOLORSYSTEMWIN_H

#defίne SOLORSYSTEMWIN_H

#ίnclude ∠QMaίnWindow>

#ίnclude ∠QGraphίcsScene>

//

namespace Ui {

class SolorSystemWίn;

}

class SolorSystemWίn : publίc QMaίnWindow

{

Q_OBJECT

publίc:

explίcit SolorSystemWίn(QWίdget *parent = nullptr);//parent

~SolorSystemWίn();//

protected slots://настройки

voίd slot_rotate(ίnt);//угол вращения

voίd slot_scale(ίnt);//размер

voίd slot_shear(ίnt);//

prίvate slots://

voίd on_graphίcsView_rubberBandChanged(const QRect &vίewportRect, const QPoίntF &fromScenePoίnt, const QPoίntF &toScenePoίnt);

prίvate:

Ui::SolorSystemWίn *uί;

QGraphίcsScene *scene;//сцена

ίnt currentAngle{0};//

ίnt currentScaleValue{0};//

ίnt currentShearValue{0};//Текущее направление наблюдения всей системы

};

Дата написания статьи: 21.07.2022
Найди решение своей задачи среди 1 000 000 ответов
Крупнейшая русскоязычная библиотека студенческих решенных задач
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot