Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
2 / 2 / 0
Регистрация: 16.05.2013
Сообщений: 20

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

30.03.2015, 22:20. Показов 1332. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Хочу сделать звёздное небо. Есть код на создание звезды, но не могу размножить и сделать, что б не на самой форме рисовалось, а на PictureBox1.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
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 курнсовая
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
 
        }
        protected override void pictureBox1(PaintEventArgs e, )
        {
 
            int y0 = 90;
            for (int x0 = 15; x0 < 1600; x0++)
            {
 
                int n = 5;               // число вершин
                double R = 4, r = 10;   // радиусы
                double alpha = 0;        // поворот
                // центр
 
                PointF[] points = new PointF[2 * n + 1];
                double a = alpha, da = Math.PI / n, l;
                for (int k = 0; k < 2 * n + 1; k++)
                {
                    l = k % 2 == 0 ? r : R;
                    points[k] = new PointF((float)(x0 + l * Math.Cos(a)), (float)(y0 + l * Math.Sin(a)));
                    a += da;
                }
 
                e.Graphics.DrawLines(Pens.Black, points);
                x0 = x0 + 40; //y0 = y0 + 20;
            }
        }
 
 
        private void pictureBox1_Click(object sender, EventArgs e)
        {
            Graphics g = pictureBox1.CreateGraphics();
             
            g.Clear(Color.DarkBlue); // закрашиваю область синим
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.03.2015, 22:20
Ответы с готовыми решениями:

Вывести на экран звёздное небо, состоящее из 100 звёзд разного размера и цвета
Здравствуйте, помогите пожалуйста, нам задали задачи с графикой , но при этом мы её вообще не проходили, я так понял, что графика делается...

"Звездное небо", остаются следы от звезд
Здравствуйте, сделал по видеоуроку код программы, реализующей полёт звезд из грубины экрана к пользователю (повторил код автора урока),...

Как можно переписать код, чтобы при невыполнении правила что-то выводилось?
Как можно переписать вывод, или где-то что-то добавить, чтобы после выполнения этого кода вывелось &quot;No&quot;. Т.е. у Димы нет...

2
 Аватар для ViterAlex
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
30.03.2015, 22:33
Ну это не совсем звёздное небо
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
public partial class Form1 : Form {
    public Form1() {
        InitializeComponent();
        pictureBox1.Paint += pictureBox1_Paint;
    }
 
    void pictureBox1_Paint(object sender, PaintEventArgs e) {
        DrawStars(e);
    }
    void DrawStars(PaintEventArgs e )
    {
 
        int y0 = 90;
        e.Graphics.Clear(Color.DarkBlue);
        for (int x0 = 15; x0 < e.ClipRectangle.Width; x0++)
        {
 
            int n = 5;               // число вершин
            double R = 4, r = 10;   // радиусы
            double alpha = 0;        // поворот
            // центр
 
            PointF[] points = new PointF[2 * n + 1];
            double a = alpha, da = Math.PI / n, l;
            for (int k = 0; k < 2 * n + 1; k++)
            {
                l = k % 2 == 0 ? r : R;
                points[k] = new PointF((float)(x0 + l * Math.Cos(a)), (float)(y0 + l * Math.Sin(a)));
                a += da;
            }
 
            e.Graphics.DrawLines(Pens.Black, points);
            x0 = x0 + 40; y0 = y0 + 20;
        }
    }
}
0
2 / 2 / 0
Регистрация: 16.05.2013
Сообщений: 20
30.03.2015, 22:46  [ТС]
Описалась в строке
protected override void OnPaint(PaintEventArgs e).
Может стоит как нибудь рисовать с помощью таймера сразу?

Добавлено через 12 минут
не могу посмотреть,что то у меня пишет "Необработанное исключение типа "System.NullReferenceException" "
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.03.2015, 22:46
Помогаю со студенческими работами здесь

Звездное небо
Помогите написать программу, которая будет каждый раз рандомно раскидывать по экрану определенное кол-во значков * (звездочка). Кол-во...

Звездное небо
Составить программу на алгоритмическом языке Turbo Pascal.Вывести на экран в графическом режиме следующее изображение: Звездное небо. ...

звездное небо
помогите !!!пожалуйста !!!! надо написать программу на с++ builder 6 ... не знаю как... вообщем... программа звёздное небо....

звёздное небо
Нужна помощь в создании звёздного неба с помощью randomize и random. Создать генерация 1000 точек разных цветов каждую секунду в билдере....

Графика. Звездное небо
Разработать программу, изображающую на экране звездное небо, полную Луну и медленно надвигающуюся на нее тень Земли, затем – медленное...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru