все отлично, спасибо!
Подробнее о работе
Гарантия сервиса Автор24
Уникальность не ниже 50%
Введение
В данной работе необходимо создать приложение, обеспечивающее рисование планеты Земля и спутника, двигающегося по ее орбите.
Оглавление
Введение 2
Трехмерная графика 3
Описание работы программы 4
Процесс преобразования координат 5
Описание классов и методов в программе 7
Описание файлового формата моделей 11
Интерфейс программы 13
Список литературы 14
Исходный код 15
ObjLoader 16
Matrix 18
Vector 22
Model 26
Основная форма 39
фрагмент
Описание работы программы
В начале при запуске программа создает модели путем загрузки их из файла, после чего создается сцена, подготавливаются начальные матрицы преобразований и собственно происходит процесс рисования.
Основной цикл состоит из двух частей — трансформация фигур на экран и рисование их на экране.
Первая часть реализуется с помощью матриц преобразования, вторая — с помощью алгоритмов рисования треугольников на экране.
фрагмент
Model
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using System.Drawing.Imaging;
using System.Runtime.InteropServices;
namespace earth
{
public class TriIndex
{
public int[]
v = new int[3],
n = new int[3],
t = new int[3];
public void SetV(int v0, int v1, int v2)
{
v[0] = v0;
v[1] = v1;
v[2] = v2;
}
public void SetV(int _v, int i)
{
v[i] = _v;
}
public void SetN(int n0, int n1, int n2)
{
n[0] = n0;
n[1] = n1;
n[2] = n2;
}
public void SetN( int _n, int i )
{
n[i] = _n;
}
public void SetT(int t0, int t1, int t2)
{
t[0] = t0;
t[1] = t1;
t[2] = t2;
}
public void SetT( int _t, int i )
{
t[i] = _t;
}
public void Copy(int to_i, TriIndex from, int from_i)
{
v[to_i] = from.v[from_i];
n[to_i] = from.n[from_i];
t[to_i] = from.t[from_i];
}
public TriIndex()
{
}
public TriIndex(int v1, int v2, int v3)
{
SetV(v1, v2, v3);
}
}
// Рисует треугольники к примеру
public class Mesh
{
public const int mNormals = 1;
public const int mTex = 2;
public const int mIndexed = 4;
public List
public List
public List
public int Flags = 0;
public List
bool is_new(int fl, int m)
{
return ((Flags & m) == 0) & ((fl & m) != 0);
}
public void AddCap( int fl)
{
if (is_new( fl, mNormals ))
Normals = new List
if (is_new( fl, mTex))
TexCoords = new List
if (is_new( fl, mIndexed))
Tris = new List
Flags |= fl;
}
public Mesh(int fl)
{
Flags = 0;
Vertices = new List
AddCap(fl);
}
Vector GetNorm(int tr_i)
{
Vector n, v, v2;
TriIndex tri = Tris[tr_i];
Не подошла эта работа?
Закажи новую работу, сделанную по твоим требованиям
Введение
В данной работе необходимо создать приложение, обеспечивающее рисование планеты Земля и спутника, двигающегося по ее орбите.
Оглавление
Введение 2
Трехмерная графика 3
Описание работы программы 4
Процесс преобразования координат 5
Описание классов и методов в программе 7
Описание файлового формата моделей 11
Интерфейс программы 13
Список литературы 14
Исходный код 15
ObjLoader 16
Matrix 18
Vector 22
Model 26
Основная форма 39
фрагмент
Описание работы программы
В начале при запуске программа создает модели путем загрузки их из файла, после чего создается сцена, подготавливаются начальные матрицы преобразований и собственно происходит процесс рисования.
Основной цикл состоит из двух частей — трансформация фигур на экран и рисование их на экране.
Первая часть реализуется с помощью матриц преобразования, вторая — с помощью алгоритмов рисования треугольников на экране.
фрагмент
Model
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using System.Drawing.Imaging;
using System.Runtime.InteropServices;
namespace earth
{
public class TriIndex
{
public int[]
v = new int[3],
n = new int[3],
t = new int[3];
public void SetV(int v0, int v1, int v2)
{
v[0] = v0;
v[1] = v1;
v[2] = v2;
}
public void SetV(int _v, int i)
{
v[i] = _v;
}
public void SetN(int n0, int n1, int n2)
{
n[0] = n0;
n[1] = n1;
n[2] = n2;
}
public void SetN( int _n, int i )
{
n[i] = _n;
}
public void SetT(int t0, int t1, int t2)
{
t[0] = t0;
t[1] = t1;
t[2] = t2;
}
public void SetT( int _t, int i )
{
t[i] = _t;
}
public void Copy(int to_i, TriIndex from, int from_i)
{
v[to_i] = from.v[from_i];
n[to_i] = from.n[from_i];
t[to_i] = from.t[from_i];
}
public TriIndex()
{
}
public TriIndex(int v1, int v2, int v3)
{
SetV(v1, v2, v3);
}
}
// Рисует треугольники к примеру
public class Mesh
{
public const int mNormals = 1;
public const int mTex = 2;
public const int mIndexed = 4;
public List
public List
public List
public int Flags = 0;
public List
bool is_new(int fl, int m)
{
return ((Flags & m) == 0) & ((fl & m) != 0);
}
public void AddCap( int fl)
{
if (is_new( fl, mNormals ))
Normals = new List
if (is_new( fl, mTex))
TexCoords = new List
if (is_new( fl, mIndexed))
Tris = new List
Flags |= fl;
}
public Mesh(int fl)
{
Flags = 0;
Vertices = new List
AddCap(fl);
}
Vector GetNorm(int tr_i)
{
Vector n, v, v2;
TriIndex tri = Tris[tr_i];
Купить эту работу vs Заказать новую | ||
---|---|---|
0 раз | Куплено | Выполняется индивидуально |
Не менее 40%
Исполнитель, загружая работу в «Банк готовых работ» подтверждает, что
уровень оригинальности
работы составляет не менее 40%
|
Уникальность | Выполняется индивидуально |
Сразу в личном кабинете | Доступность | Срок 1—6 дней |
660 ₽ | Цена | от 500 ₽ |
Не подошла эта работа?
В нашей базе 150506 Курсовых работ — поможем найти подходящую