Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
215 / 211 / 146
Регистрация: 20.11.2014
Сообщений: 1,184

Написать скринсейвер с использованием фрактала

17.04.2015, 00:59. Показов 1237. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дали задачку, написать скринсейвер с использованием фрактала(ов). Получилось пока с рандомно скачущим по форме labelом. Помогите вставить фрактал, можно даже самый простенький, что-бы он сначала прорисовывался на одном месте, исчезал, появлялся в другом месте и тд

Пока имею это:
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Runtime.InteropServices;
 
namespace ScreenSaver
{
    public partial class Form1 : Form
    {
        #region Win32 API functions
 
        [DllImport("user32.dll")]
        static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
 
        [DllImport("user32.dll")]
        static extern int SetWindowLong(IntPtr hWnd, int nIndex, IntPtr dwNewLong);
 
        [DllImport("user32.dll", SetLastError = true)]
        static extern int GetWindowLong(IntPtr hWnd, int nIndex);
 
        [DllImport("user32.dll")]
        static extern bool GetClientRect(IntPtr hWnd, out Rectangle lpRect);
 
        #endregion
 
 
        private Point mouseLocation;
        private bool previewMode = false;
        private Random rand = new Random();
 
        public Form1()
        {
            InitializeComponent();
        }
 
        public Form1(Rectangle Bounds)
        {
            InitializeComponent();
            this.Bounds = Bounds;
        }
 
        public Form1(IntPtr PreviewWndHandle)
        {
            InitializeComponent();
            SetParent(this.Handle, PreviewWndHandle);
            Rectangle ParentRect;
            GetClientRect(PreviewWndHandle, out ParentRect);
            Size = ParentRect.Size;
            Location = new Point(0, 0);
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            Cursor.Hide();
            TopMost = true;
            moveTimer.Interval = 1000;
            moveTimer.Tick += new EventHandler(moveTimer_Tick);
            moveTimer.Start();
        }
 
        private void moveTimer_Tick(object sender, System.EventArgs e)
        {
            
           textLabel.Left = rand.Next(Math.Max(1, Bounds.Width - textLabel.Width));
            textLabel.Top = rand.Next(Math.Max(1, Bounds.Height - textLabel.Height));
        }
 
 
        private void ScreenSaverForm_MouseMove(object sender, MouseEventArgs e)
        {
            if (!previewMode)
            {
                if (!mouseLocation.IsEmpty)
                {
                    if (Math.Abs(mouseLocation.X - e.X) > 5 || Math.Abs(mouseLocation.Y - e.Y) > 5)
                        Application.Exit();
                }
                mouseLocation = e.Location;
            }
        }
 
        private void ScreenSaverForm_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!previewMode)
                Application.Exit();
        }
 
        private void ScreenSaverForm_MouseClick(object sender, MouseEventArgs e)
        {
            if (!previewMode)
 
                Application.Exit();
        }
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.04.2015, 00:59
Ответы с готовыми решениями:

Рисование фрактала на форме
Дали задание нарисовать фрактал у виде папоротника. Вот собственно сам скрин фрактала который должен получится: Короче говоря не...

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

Как правильно создать Скринсейвер
Как правильно создать Скринсейвер на C# программка уже есть но как она должна запускаться

3
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
17.04.2015, 01:38
bbq, зачем вам вообще контролы, переопределяете form_onPaint и рисуете там на графике всё, что нужно, благо прямые, эллипсы и всё прочее доступно стандартно.
0
215 / 211 / 146
Регистрация: 20.11.2014
Сообщений: 1,184
17.04.2015, 14:24  [ТС]
эмм, а как это сделать?
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
17.04.2015, 18:55
bbq, ну саму форму лучше не перерисовывать наверное. В таком случае кидаете на форму picturebox, кнопку, в picturebox делаете обработчик события onpaint, где собственно и рисуете всё, что надо. Либо по клику на кнопке сами рисуете. Псевдокод:
C#
1
2
3
4
5
6
7
button1_Click(...)
{
   using(var g = Graphics.FromImage(PictureBoxFractal.Image))
   {
       //and so on
   }
}
http://csharphelper.com/blog/2... ctal-in-c/

Добавлено через 2 минуты
Правда там люди даже не умеют пользоваться форматирующей строкой и диспозить битмапы, но общий смысл таков.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.04.2015, 18:55
Помогаю со студенческими работами здесь

Как создать видео скринсейвер?
Помогите пожалуйста как можно создать видео скреенсейвер(экраннаязаставка) в c# ?

Можно ли написать скринсейвер?
Баловался тут с Паскалем, сестрёнка в школе этот язык изучают, меня зацепило, решил вспомнить молодость. Правда тогда оперировал языком...

Написать код для создания фрактала Мандельброта и Кантора
Кто может предоставить код для создания фрактала Мандельброта и Кантора. Не могу найти реализацию этих двух фракталов на C#.

Написать программу с использованием функции и с использованием макроса
Составить две программы вычисления функции F и сравнить результаты ***** - Используя объявления макроса; ***** - Используя обращение к...

написать программу движущийся графический объект с двумя способоми с использованием статического объекта и с использованием динамического объекта
Движение закрашенного прямоугольника по треугольному контуру с изменением цвета при изменении направления движения.


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru