Уроки, алгоритмы, программы, примеры

Вход на сайт

Материалы по разделам

Построения
на плоскости (2D)
Графика
в пространстве (3D)
Вычислительная
геометрия
Физическое
моделирование
Фрактальная
графика

Новые комментарии

огромное спасибо за подробное объяснение про 3д графику на питоне, в интернете очень мало подобной информации
dobryj den, popytalas otkryt prikreplionnyj fail ctoby posmotret kak rabotaet, no mne ego ne pokazyvaet vydajet osibku. Pochemu?
Очень интересно! ии сайт крутой жалко что умирает(
У Вас число превысит максимальное число int. Можно использовать в Вашем случае uint, но лучше все переписать на double.
Добавление к программе строки glutReshapeFunc(changeSize); приводит к тому, что треугольник перестаёт совсем отрисовываться.

Счетчики и рейтинг

Рейтинг@Mail.ru Яндекс.Метрика
Скриншот к примеру
Среда программирования: 
Visual Studio 2013
Статья по теме: 

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

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

Код программы: 

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;
using System.Threading;
 
 
 
namespace Lab1
{
 
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        //С загрузкой формы выводим сообщение!
 
        private void Form1_Load(object sender, EventArgs e)
        {    
            label1.Text = "Введите длину отрезка!";
        }
 
        private void pictureBox1_Click(object sender, EventArgs e)
        {
 
        }
 
        //обработка кнопки "Построить"
 
         private void button1_Click(object sender, EventArgs e)
        {
            Graphics g = pictureBox1.CreateGraphics();
 
           //очистка окна
            g.Clear(Color.White);
 
            //считываем длину отрезка
            int a = Int32.Parse(textBox1.Text);
 
           //рассчитываем координату Х
            int x = 610 / 2 - a / 2;
 
            // вызываем функцию прорисовки
            DrawB(x, 10, a);
 
        }
 
        //функция прорисовки
        private void DrawB(int x, int y, int width)
        {
            Graphics g = pictureBox1.CreateGraphics();
            // выбираем цвет заливки 
            SolidBrush Black = new SolidBrush(Color.Black);
            Pen myPen = new Pen(Color.Black, 1);
 
           //Поставим условие вызова и прорисовки 
 
            if (width >= 3)
            {
                //Отрезки изображаем прямоугольниками для наглядности
                g.DrawRectangle(myPen, x, y, width, 12);
                g.FillRectangle(Black, x, y, width, 12);
 
                 //Сдвигаемся вниз
                y = y + 40;
 
                //Вызываем функцию для двух полученных отрезков
                DrawB(x + width * 2 / 3, y, width / 3);
                DrawB(x, y, width / 3);
            }
        }
 
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
 
        }
 
        private void label1_Click(object sender, EventArgs e)
        {
 
        }
 
    }
}

Прикрепленный файлРазмер
kantr.zip50.48 кб