Инфоурок Информатика Научные работыПроект:"Создание приложения в Microsoft Visual Studio для отображения правильных многогранников"

Проект:"Создание приложения в Microsoft Visual Studio для отображения правильных многогранников"

Скачать материал

 

 

 

 

 

 

 

Проект

«Создание приложения в  Microsoft Visual Studio для отображения правильных многогранников»

 

Разработал:         учитель информатики МОБУ СОШ с.Наумовка

                                                                            Сергиенко Павел Николаевич

 

 

 

 

 

2016 год

План.

Введение

1. Платоновы тела. Общая информация                                        4 стр

2. Перечень Платоновых тел и их характеристик                          7 стр

3. Построение «Платоновых» тел                                                  8 стр

4. Вычисление параметров для построения изображения

         Платоновых тел.                                                                   13 стр

5. Пример расчёта вершин  и отрисовки куба

на заданной поверхности.                                                              18 стр

6. Заключение                                                                                21 стр

7. Использованная литература                                                       22 стр

 

 

 

 

 

 

 

 

 

Введение

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

В качестве объекта для изучения я выбрал 5 правильных многогранников, так называемых Платоновых тел.

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

Задачи:      изучить информацию о Платоновых телах используя доступную                   литературу и источники в Сети

                   ознакомиться со способами построения Платоновых тел на                            плоскости

                   создать приложение выполняющее построение Платоновых тел

Платоновы тела

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

Еще во времена древних греков был установлен поразительный факт - существует всего пять правильных выпуклых многогранников разной формы. Впервые исследованные пифагорейцами, эти пять правильных многогранников были впоследствии подробно описаны Платоном и стали называться в математике Платоновыми телами.

Правильные многогранники характерны для философии Платона, в честь которого и получили название. Платон писал о них в своём трактате Тимей (360г до н. э.), где сопоставил каждую из четырёх стихий (землю, воздух, воду и огонь) определённому правильному многограннику. Земля сопоставлялась кубу, воздух — октаэдру, вода — икосаэдру, а огонь — тетраэдру. Для возникновения данных ассоциаций, были следующие причины: жар огня ощущается чётко и остро (как маленькие тетраэдры); воздух состоит из октаэдров: его мельчайшие компоненты настолько гладкие, что их с трудом можно почувствовать; вода выливается, если её взять в руку, как будто она сделана из множества маленьких шариков (к которым ближе всего икосаэдры); в противоположность воде, совершенно непохожие на шар кубики составляют землю, что служит причиной тому, что земля рассыпается в руках, в противоположность плавному току воды. По поводу пятого элемента, додекаэдра, Платон сделал смутное замечание: «…его бог определил для Вселенной и прибегнул к нему в качестве образца». Аристотель добавил пятый элемент — эфир и постулировал, что небеса сделаны из этого элемента, но он не сопоставлял его платоновскому пятому элементу.

Зашифрованная в пяти Платоновых телах идея симметрии увлекла знаменитого немецкого астронома конца XVI — начала XVII века Иоганна Кеплера, пытавшегося объяснить, почему в Солнечной системе имеются именно шесть планет (во времена Кеплера, как и во времена Пифагора, были известны только шесть планет) и почему радиусы их «сфер» (орбит) относятся как 8:15:20:30:115:195 (согласно результатам, полученным Кеплером). Взяв сферу Сатурна, Кеплер вписал в нее куб. Затем в этот куб он вписал следующую сферу — сферу Юпитера. В сферу Юпитера был вписан тетраэдр, а в тетраэдр — сфера Марса. В сферу Марса Кеплер вписал додекаэдр, а в него — сферу Земли. Затем шли последовательно икосаэдр, вписанный в сферу Земли, сфера Венеры, октаэдр, вписанный в сферу Венеры, и, наконец, сфера Меркурия. Легко видеть, что в схеме Кеплера использованы все пять Платоновых тел; часть этой схемы изображена на рисунке. Вычислив в соответствии со своей схемой радиусы планетных сфер, Кеплер обнаружил, что отношения этих радиусов хорошо согласуются с данными, полученными из наблюдений. Это удивительное совпадение заставило Кеплера поверить в правильность исходной идеи. Он полагал, что ему удалось объяснить строение всей Солнечной системы на основе единой геометрической схемы, использующей сферы и пять Платоновых тел. Существование именно шести планет Кеплер ставил при этом в прямую связь с существованием пяти Платоновых тел. «Огромную радость, которую я испытал от этого открытия, нельзя выразить словами, — писал Кеплер. — Я уже не жалел о потраченном времени и не испытывал усталости. Я не боялся трудных расчетов, стремясь выяснить, соответствует ли моя гипотеза теории орбит Коперника, или же моя радость должна рассеяться как дым».

Радость Кеплера оказалась преждевременной. Обнаруженное им совпадение отношений радиусов планетных орбит с отношениями, полученными из схемы с правильными многогранниками, было случайным и, как показали более поздние наблюдения, весьма приближенным. К тому же число планет в Солнечной системе в действительности равно не шести, а девяти.

 

 

Перечень Платоновых тел и их характеристики

 

Додекаэдр (от греческого dodeka – двенадцать и hedra – грань) это правильный многогранник, составленный из двенадцати равносторонних пятиугольников.

Додекаэдр имеет 20 вершин и 30 ребер.

Вершина додекаэдра является вершиной трех пятиугольников, таким образом, сумма плоских углов при каждой вершине равна 324°.

Сумма длин всех ребер 30а.

Додекаэдр имеет центр симметрии и 15 осей симметрии.

Каждая из осей проходит через середины противолежащих параллельных ребер. Додекаэдр имеет 15 плоскостей симметрии. Любая из плоскостей симметрии проходит в каждой грани через вершину и середину противоположного ребра.

Тетраэдр (греч. τετραεδρον — четырёхгранник) — многогранник с четырьмя треугольными гранями, в каждой из вершин которого сходятся по 3 грани. У тетраэдра 4 грани, 4 вершины и 6 рёбер.

Параллельные плоскости, проходящие через пары скрещивающихся рёбер тетраэдра, определяют описанный около тетраэдра параллелепипед.

Тетраэдры в микромире:

Вода, Лёд.

Молекула метана

Молекула аммиака

Алмаз C - тетраэдр с ребром равным 2,5220 ангстрем

Флюорит, тетраэдр с ребром равным 3, 8626 ангстрем

Сфалерит, ZnS, тетраэдр с ребром равным 3,823 ангстрем

 

Куб или правильный гексаэдр — правильный многогранник, каждая грань которого представляет собой квадрат. Частный случай параллелепипеда и призмы.

Свойства куба

Четыре сечения куба являются правильными шестиугольниками — эти сечения проходят через центр куба перпендикулярно четырём его главным диагоналям.

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

В куб можно вписать октаэдр, притом все шесть вершин октаэдра будут совмещены с центрами шести граней куба.

Куб можно вписать в октаэдр, притом все восемь вершин куба будут расположены в центрах восьми граней октаэдра.

В куб можно вписать икосаэдр, при этом шесть взаимно параллельных рёбер икосаэдра будут расположены соответственно на шести гранях куба, остальные 24 ребра — внутри куба. Все двенадцать вершин икосаэдра будут лежать на шести гранях куба.

В микромире

В форме куба кристаллизуется поваренная соль, флюорит и другие вещества.

 

Октаэдр (греч. οκτάεδρον, от греч. οκτώ, «восемь» и греч. έδρα — «основание») — один из пяти выпуклых правильных многогранников, так называемых, Платоновых тел.

Октаэдр имеет 8 треугольных граней, 12 рёбер, 6 вершин, в каждой его вершине сходятся 4 ребра.

Октаэдр в природе

Многие природные кубические кристаллы имеют форму октаэдра. Это алмаз, хлорид натрия, перовскит, оливин, флюорит, шпинель.

Форму октаэдра имеют межатомные пустоты (поры) в плотноупакованных структурах чистых металлов (никеле, меди, магнии, титане, лантане и многих других) и ионных соединений (хлорид натрия, сфалерит, и др.).

 

Икосаэдр  (от греч. εικοσάς — двадцать; -εδρον — грань, лицо, основание) — правильный выпуклый многогранник, двадцатигранник, одно из Платоновых тел. Каждая из 20 граней представляет собой равносторонний треугольник. Число ребер равно 30, число вершин — 12.

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

В икосаэдр может быть вписан тетраэдр, притом, четыре вершины тетраэдра будут совмещены с четырьмя вершинами икосаэдра.

Икосаэдр можно вписать в додекаэдр, при этом вершины икосаэдра будут совмещены с центрами граней додекаэдра.

В икосаэдр можно вписать додекаэдр с совмещением вершин додекаэдра и центров граней икосаэдра.

Усечённый икосаэдр может быть получен срезанием 12 вершин с образованием граней в виде правильных пятиугольников. При этом число вершин нового многогранника увеличивается в 5 раз (12×5=60), 20 треугольных граней превращаются в правильные шестиугольники (всего граней становится 20+12=32), а число рёбер возрастает до 30+12×5=90.

 

Построение «Платоновых» тел

 В своей программе для построения Платоновых тел я воспользовался способом, предложенным М.Степановым в статье «Единый методический подход к задачам на построение сложных компьютерных изображений». В данной статье был предложен общий способ построения n-угольного призматоида, и рассмотрены идеи построения Платоновых тел.

Выбор оси вращения

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

1.Ось   проходит через середину   ребра (тетраэдр).

2.Ось   проходит   через   вершину   (куб, икосаэдр).

3.Ось проходит через центр грани (октаэдр, додекаэдр).

Плоскости, в которых лежат траектории: вершин, рассекают Платоновы тела на уже  знакомые  нам многогранники, открывая путь  к  построению  нужных  изображений.

1. Тетраэдр - двуугольный призматоид

2.Октаэдр - треугольный призматоид.

3.Куб - треугольный призматоид + 2  треугольные пирамиды.

4.Икосаэдр - пятиугольный призматоид + 2 пятиугольные пирамиды.

5.Додекаэдр - пятиугольный призматоид + 2   усеченные  пятиугольные пирамиды.

Метрические соотношения для Платоновых тел

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

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

an=2*r*sinπ/n.

Все вычисления   и   их результаты   приведены ниже.

Порядок построения многогранников, общий для всех Платоновых тел будет таким:

1.Выбрать величины ХО, YOD, задающие положение и длину вертикальной оси вращения.

2.Вычислить координаты центров эллипсов и их большие полуоси (радиусы).

3.Произвести  вычисление  и  сохранение в  массивах   координат  вершин  многогранника.   При  этом  следует  учесть  тот  факт, что   все   вершины,   лежащие   выше   центра шара, сдвинуты относительно вершин, лежащих ниже центра шара.

 

 

 

 

 

Вычисление параметров для построения изображения Платоновых тел.

 

Тетраэдр

Порядок вычислений:

r1=L/2

b4=2*r1*sin π/4=L/√2

h1=√L2-b42=L/√2

D=√4r12+h12=√2/3*L

Результаты:

L=√2/3*D; r1=L/2; h1=L/√2

 

 


Октаэдр

 

Порядок вычислений:

a3=L

r1=a3/2sin π/3=L/√3

b6=2*r1*sin π/6=L/√3

h1=√L2-b62=L/√2

D=√4r12+h12=√2*L

Результаты:

L=D/2; r1=L/√3; h1=√2/3*L

 

Куб

Порядок вычислений:

a3=√2*L

r1=a3/2sin π/3=√2/3*L

b6=2*r1*sin π/6=r1

h1=√L2-r12=L/√3

D=2h1+h2=√3*L

Результаты:

L=D/√3; r1=L*√2/3; h1=h2=D/3

 

 

Икосаэдр

Порядок вычислений:

a5=L

r1=L/2sin π/5≈0,85*L

b10=2*r1*sin π/10≈0,525*L

h1=√L2-r12≈0,525*L

h2=√L2-b102≈0,85*L

D=√4r12+h12≈1,9*L

Результаты:

L=0,525D; h1=0,525DL; h2=0,85L; r1 =0,85L

 

Додекаэдр

Порядок вычислений:

a5=L

r1=L/2*sin π/5≈0,85*L

b5=2*L*sin 3π/10≈1,62*L

r2=b5/2*sin π/5≈1,38*L

h1=√L2-(r2-r1)2≈0,85*L

c10=2*r2*sin π/10≈0,85*L

h2=√L2-c102≈0,525*L

D=√4r22+h22≈2,8*L

Результаты: L=0,356*D; h1=0,85*L; h2=0,525*L; r1 =0,85*L; r2 =1,38*L

Данные рассуждения я использовал при написании программы отображающей Платоновы тела. Программа создана с использованием среды разработки Microsoft Visual Studio 2008.

Был создан абстрактный базовый класс для отображения любых Платоновых тел. Далее  были созданы производные классы для построения конкретных тел. В этих классах реализованы методы для расчёта координат вершин многогранника и отрисовки его рёбер.

Пример расчёта вершин  и отрисовка куба на заданной поверхности.

using System;

using System.Collections.Generic;

//using System.Linq;

using System.Text;

using System.Drawing;

 

namespace ScinceWork

{

    #region Класс представляющий тело "Куб"

    /// <summary>

    /// Класс представляющий тело "Куб"

    /// </summary>

    public class Cube : AbsSolid

    {

        #region объявление переменных

        /// <summary>

        /// Шаг с которым расположены вершины многоугольника, на описываемом вокруг него эллипсе

        /// </summary>

        private double DU;

       

        /// <summary>

        /// Длина ребра "платоновского" тела

        /// </summary>

        private double L;

       

        /// <summary>

        /// Расстояние между верхней точкой, описанного шара, и плоскостью, в которой лежат описываемые эллипсы

        /// </summary>

        private double H1;

       

        /// <summary>

        /// Расстояние между плоскостями, в которых лежат 2 описываемых эллипса

        /// </summary>

        private double H2;

       

        /// <summary>

        /// Большая полуось эллипса

        /// </summary>

        private double R1;

       

        /// <summary>

        /// Координата центра, описанного вокруг многоугольника, 1-го эллипса по оси OY

        /// </summary>

        private double Y1;

       

        /// <summary>

        /// Координата центра, описанного вокруг многоугольника, 2-го эллипса по оси OY

        /// </summary>

        private double Y2;

       

        /// <summary>

        /// Координаты вершин многоугольников, принадлежащих эллипсам, по оси OX

        /// </summary>

        private int[] XL = new int[6];

 

        /// <summary>

        /// Координаты вершин многоугольников, принадлежащих эллипсам, по оси OY

        /// </summary>

        private int[] YL = new int[6];

        #endregion

 

        #region определение методов

 

        /// <summary>

        /// Конструктор куба

        /// </summary>

        /// <param name="Centre">координаты центра, описанного вокруг додекаэдра, шара</param>

        /// <param name="D">диаметр, описанного вокруг додекаэдра, шара</param>

        public Cube(Point Centre, int D)

            : base(Centre, D)

        {

 

            this.DU = AbsSolid.pi / 3;

        }

 

        /// <summary>

        /// Метод выполняющий вычисление координат вершин куба

        /// </summary>

        private void Calculate()

        {

            //вычисление начальных данных

            this.L = D * 0.577;

            this.H1 = D / 3;

            this.H2 = D / 3;

            this.R1 = L * 0.816 * this.Kx;

            this.Y1 = (this.Centre.Y - this.D / 2) + H1;

            this.Y2 = Y1 + H2;

 

            int I = 0;

            double YY = 0;

            double gr = A0 + 2 * AbsSolid.pi;

 

            for (double UG = A0; UG < gr; )

            {

                //вычисление координат вершин многоугольников, принадлежащих эллипсам

                XL[I] = (int)(this.Centre.X + R1 * Math.Cos(UG));

                YL[I] = (int)(Y1 - this.Ky * R1 * Math.Sin(UG));

                YY = Y1;

                Y1 = Y2;

                Y2 = YY;

 

                UG = UG + DU;

                I = I + 1;

            }

        }

 

        /// <summary>

        /// Метод для отрисовки куба

        /// </summary>

        /// <param name="Canvas">поверхность отрисовки</param>

        /// <param name="Pn">перо для отрисовки</param>

        public override void DrawSolid(Graphics Canvas, Pen Pn)

        {

            int I;

 

            this.Calculate();

 

            I = 0;

            for (I = 0; I <= 4; I = I + 2)

            {

                if (I != 4)

                {

                    Canvas.DrawLine(Pn, XL[I], YL[I], this.Centre.X, (this.Centre.Y - this.D / 2));

                    Canvas.DrawLine(Pn, XL[I], YL[I], XL[I + 1], YL[I + 1]);

                }

                else

                {

                    Canvas.DrawLine(Pn, XL[I], YL[I], this.Centre.X, (this.Centre.Y - this.D / 2));

                    Canvas.DrawLine(Pn, XL[I], YL[I], XL[I + 1], YL[I + 1]);

                }

            }

 

            I = 1;

            for (I = 1; I <= 5; I = I + 2)

            {

                if (I != 5)

                {

                    Canvas.DrawLine(Pn, XL[I], YL[I], this.Centre.X, (this.Centre.Y + this.D / 2));

                    Canvas.DrawLine(Pn, XL[I], YL[I], XL[I + 1], YL[I + 1]);

                }

                else

                {

                    Canvas.DrawLine(Pn, XL[I], YL[I], this.Centre.X, (this.Centre.Y + this.D / 2));

                    Canvas.DrawLine(Pn, XL[I], YL[I], XL[I - 5], YL[I - 5]);

                }

            }

        }

 

        #endregion

    }

    #endregion

 

}

 

 

Заключение

Данная тема может быть использована при изучении программирования в 9 – 11 классах. Этот проект демонстрирует принципы построения трехмерных тел, получить начальные навыки работы со средой программирования Microsoft Visual Studio 2008 и создать приложение демонстрирующее Платоновы тела.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Используемая литература

1. М.Степанов. Единый методический подход к задачам на построение сложных компьютерных изображений. Информатика и образование 1/1993

2. Си Шарп: Создание приложений для Windows/ В. В. Лабор.— Мн.: Харвест, 2003.

 

3.Справочные материалы Microsoft Visual Studio 2008

 

4. Материалы свободной энциклопедии Википедия

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Проект:"Создание приложения в Microsoft Visual Studio для отображения правильных многогранников""

Методические разработки к Вашему уроку:

Получите новую специальность за 3 месяца

Специалист по связям с общественностью

Получите профессию

HR-менеджер

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 664 409 материалов в базе

Скачать материал

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 19.04.2016 1675
    • DOCX 676 кбайт
    • Оцените материал:
  • Настоящий материал опубликован пользователем Сергиенко Павел Николаевич. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    Сергиенко Павел Николаевич
    Сергиенко Павел Николаевич
    • На сайте: 8 лет
    • Подписчики: 0
    • Всего просмотров: 18075
    • Всего материалов: 11

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

Копирайтер

Копирайтер

500/1000 ч.

Подать заявку О курсе

Курс профессиональной переподготовки

Информатика: теория и методика преподавания в образовательной организации

Учитель информатики

300/600 ч.

от 7900 руб. от 3650 руб.
Подать заявку О курсе
  • Сейчас обучается 494 человека из 73 регионов
  • Этот курс уже прошли 1 525 человек

Курс повышения квалификации

Применение компьютерных моделей при обучении математике и информатике в рамках ФГОС ООО

72 ч. — 180 ч.

от 2200 руб. от 1100 руб.
Подать заявку О курсе
  • Сейчас обучается 48 человек из 27 регионов
  • Этот курс уже прошли 179 человек

Курс повышения квалификации

Теоретические и методологические основы преподавания информатики с учётом требований ФГОС ООО

72 ч. — 180 ч.

от 2200 руб. от 1100 руб.
Подать заявку О курсе
  • Сейчас обучается 153 человека из 49 регионов
  • Этот курс уже прошли 1 718 человек

Мини-курс

Сенсорная интеграция: типовые и инновационные методы

6 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 76 человек из 30 регионов
  • Этот курс уже прошли 45 человек

Мини-курс

Основы психологии личности: от нарциссизма к творчеству

8 ч.

1180 руб. 590 руб.
Подать заявку О курсе
  • Сейчас обучается 40 человек из 19 регионов
  • Этот курс уже прошли 12 человек

Мини-курс

Инновационные технологии в краеведческой и географической работе со школьниками

10 ч.

1180 руб. 590 руб.
Подать заявку О курсе