Октябрь 2017

Использование спецификации Open GL при построении трехмерного представления

OpenGL (Open Graphics Library) — спецификация, определяющая платформонезависимый (независимый от языка программирования) программный интерфейс для написания приложений, использующих двумерную и трёхмерную компьютерную графику. Включает более 300 функций для рисования сложных трёхмерных сцен из простых примитивов. Используется при создании компьютерных игр, САПР, виртуальной реальности, визуализации в научных исследованиях. На платформе Windows конкурирует с Direct3D.

Для разработки будем использовать пакет SharpGL. WinForms, скаченный из nuget.org (nuget  — менеджер пакетов для .Net. Данный галерея пакетов является центральным репозиторием пакетов, которой используют все авторы и потребители).

Добавим SharpGl к компонентам .Net Framework. Добавим DLL SharpGL  к проекту.

Нарисуем треугольник, с красным, зеленым и синим цветом по углам треугольника. Добавим 6 кнопок с координатами (X, Y, Z) для увеличения или уменьшения координат (рисунок 9).

 

 

Листинг программы

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

 

namespace openGL_example

{

public partial class Form1 : Form

{

private float axis_rotate_X;

private float axis_rotate_Y;

private float axis_rotate_Z;

public Form1()

{

InitializeComponent();

this.axis_rotate_X = 0;

this.axis_rotate_Y = 0;

this.axis_rotate_Z = 0;

}

 

private void button1_Click(object sender, EventArgs e)

{

this.axis_rotate_X = this.axis_rotate_X + 5f;

}

 

private void button2_Click(object sender, EventArgs e)

{

this.axis_rotate_Y = this.axis_rotate_Y + 5f;

}

 

private void button3_Click(object sender, EventArgs e)

{

this.axis_rotate_Z = this.axis_rotate_Z + 5f;

}

 

private void button4_Click(object sender, EventArgs e)

{

this.axis_rotate_X = this.axis_rotate_X -5f;

}

 

private void button5_Click(object sender, EventArgs e)

{

this.axis_rotate_Y = this.axis_rotate_Y — 5f;

}

 

private void button6_Click(object sender, EventArgs e)

{

this.axis_rotate_Z = this.axis_rotate_Z — 5f;

}

 

private void button7_Click(object sender, EventArgs e)

{

}

 

private void button8_Click(object sender, EventArgs e)

{

}

 

private void openGLControl1_OpenGLDraw(object sender, SharpGL.RenderEventArgs args)

{

SharpGL.OpenGL gl = this.openGLControl1.OpenGL;

gl.Clear(SharpGL.OpenGL.GL_COLOR_BUFFER_BIT | SharpGL.OpenGL.GL_DEPTH_BUFFER_BIT);  // Очистка скрина

gl.LoadIdentity();    // сброс

gl.Translate(0.0f, 0.0f, -6.0f);  // переместить влево

gl.Rotate(axis_rotate_X, 1.0f, 0.0f, 0.0f);

gl.Rotate(axis_rotate_Y, 0.0f, 1.0f, 0.0f);

gl.Rotate(axis_rotate_Z, 0.0f, 0.0f, 1.0f);

gl.Begin(SharpGL.OpenGL.GL_TRIANGLES); // начать рисовать пирамиду

gl.Color(1.0f, 0.0f, 0.0f);   //красный

gl.Vertex(0.0f, 1.0f, 0.0f); // центр пирамиды

gl.Color(0.0f, 1.0f, 0.0f); //Зеленый

gl.Vertex(-1.0f, -1.0f, 1.0f);  // левая сторона пирамиды

gl.Color(0.0f, 0.0f, 1.0f);  // Синий

gl.Vertex(1.0f, -1.0f, 1.0f);  // права сторона пирамиды

gl.Color(1.0f, 0.0f, 0.0f);   //красный

gl.Vertex(0.0f, 1.0f, 0.0f); // центр пирамиды

gl.Color(0.0f, 0.0f, 1.0f); //Зеленый

gl.Vertex(1.0f, -1.0f, 1.0f);  // левая сторона пирамиды

gl.Color(0.0f, 1.0f, 0.0f);  // Синий

gl.Vertex(1.0f, -1.0f, -1.0f);  // права сторона пирамиды

gl.Color(1.0f, 0.0f, 0.0f);   //красный

gl.Vertex(0.0f, 1.0f, 0.0f); // центр пирамиды

gl.Color(0.0f, 1.0f, 0.0f); //Зеленый

gl.Vertex(1.0f, -1.0f, -1.0f);  // левая сторона пирамиды

gl.Color(0.0f, 0.0f, 1.0f);  // Синий

gl.Vertex(-1.0f, -1.0f, -1.0f);  // права сторона пирамиды

gl.Color(1.0f, 0.0f, 0.0f);   //красный

gl.Vertex(0.0f, 1.0f, 0.0f); // центр пирамиды

gl.Color(0.0f, 0.0f, 1.0f); //Зеленый

gl.Vertex(-1.0f, -1.0f, -1.0f);  // левая сторона пирамиды

gl.Color(0.0f, 1.0f, 0.0f);  // Синий

gl.Vertex(-1.0f, -1.0f, 1.0f);  // права сторона пирамиды

gl.End();

gl.LoadIdentity();

}

private void openGLControl1_Load(object sender, EventArgs e)

{

}}

}

Результат работы программы представлен ниже

При нажатии на кнопку соответствующей координате – наш треугольник смешается относительной ей.

Учебный проект. Разработчик: Цирков Г.А.

Приглашаем вас на 5-недельный тренинг «Бизнес-aнализ и карьера. Jump start».

▪Ведущие: Алла Стрэйдер, PMP, MBA, Анна Рохас, MBA, M. Ed.
▪Когда: 18 ноября — 17 декабря
▪Объём: 40 часов занятий и 40 часов индивидуальной и групповой работы
▪График: среда, суббота, воскресенье
▪Где: онлайн. В форме вебинаров и скайп-созвонов.

Подробности на сайте: 👉 http://it-bacademy.com/newbatraining/

👨‍💻️Для кого этот тренинг:

▪ Для практикующих аналитиков, которые хотят систематизировать знания и освоить передовые техники бизнес-анализа

▪Для IT менеджеров, Product Owners, архитекторов, руководителей проектов которым необходимо освоить фундаментальные основы бизнес-анализа для улучшения навыков сбора требовании и работы с заказчиками

▪ Для тех, кто уже работает в IT и хочет перейти в сферу бизнес-анализа

▪Для тех, кто не имеет технического опыта или образования, но хочет начать карьеру бизнес-аналитика

▪ Для тех аналитиков, которые хотят быть конкурентоспособным на мировом рынке и работать в международной компании

🔥До 31 октября самые низкие цены на пятинедельный тренинг «Бизнес-aнализ и карьера. Jump start».

Приобретайте подходящий вам пакет 👉 http://it-bacademy.com/newbatraining/

Если актуально добавляйтесь в предварительную группу записи
https://vk.com/event154819552

Вакансии в diasoft

∙ Ведущий аналитик по автоматизации Отчетности (XBRL/МСФО/РСБУ/НУ);

∙ Ведущий аналитик по автоматизации кредитного бэк-офиса;

∙ Ведущий аналитик по автоматизации налогового учета;

∙ Ведущий аналитик по автоматизации бухгалтерского учета (Главная книга);

∙ Ведущий аналитик по интеграции;

∙ Старший/ведущий/главный программист Java;

∙ Главный/ведущий разработчик PL/SQL+ SAP BO (Oracle BI).

Знаете таких людей? Смело направляйте их резюме и свои рекомендации на job@diasoft.ru

Метод простой замены на c#

Задача: разработать программу, которая будет заменять символы шифруемого текста на символы того же алфавита со сдвигом вправо на два символа.

Git https://github.com/aovakur/simple_replacement

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

Git https://github.com/aovakur/swap_adjacent

«Нетология» запускает второй набор на очную программу обучения «Data Scientist

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

В рамках курса вы научитесь создавать рекомендательные системы, создавать и обучать нейросети, прогнозировать стоимость акций и других товаров, обрабатывать тексты на естественном языке и использовать data scientist в e-commerce.

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

На выходе вы получите диплом о профессиональной переподготовке по специальности «Аналитик данных/Специалист по машинному обучению». С ним вы сможете претендовать на позицию «Аналитик данных», «Разработчик machine learning» с зарплатой от 120 тысяч рублей.

Есть возможность оплаты в рассрочку. Для обучения требуются базовые знания математической статистики и понимание хотя бы одного языка программирования на начальном уровне, предпочтительно — Python.

Старт программы — 6 октября.
Успейте подать заявку!

http://netolo.gy/dVo