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

Программа для вычерчивания набора из N эллипсов, для которых определены параметрические уравнения

30.01.2017, 12:46. Показов 1940. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Напишите программу для вычерчивания набора из N эллипсов, для которых определены параметрические уравнения

x = x0 + (i∙R/N) cos Ф
y = y0 + ((N-i)R/N) sin Ф
Возьмите фиксированные значения x0, y0, R, N; например, x0=4, y0=3.5, R=3, N=40. Пусть i изменяется в диапазоне от 1 до N-1. Пусть для каждого значения i угол последовательно принимает значения 0, 6, 12, ..., 360 градусов.

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
96
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
 
namespace Laba9
 
{
 
public partial class Form1 : Form
 
{
Graphics dc; Pen p;
public Form1()
{
 
InitializeComponent();
dc = pictureBox1.CreateGraphics();
p = new Pen(Brushes.Red, 1);
}
 
/* Метод преобразования вещественной координаты X в целую */
 
private int IX(double x)
{
double xx = x * (pictureBox1.Size.Width / 10.0) + 0.5;
return (int)xx;
}
 
/* Метод преобразования вещественной координаты Y в целую */
 
private int IY(double y)
{
double yy = pictureBox1.Size.Height - y * (pictureBox1.Size.Height / 7.0) + 0.5;
return (int)yy;
}
 
/* Своя функция вычерчивания линии (экран 10х7 условных единиц) */
 
private void Draw(double x1, double y1, double x2, double y2)
{
Point point1 = new Point(IX(x1), IY(y1));
Point point2 = new Point(IX(x2), IY(y2));
dc.DrawLine(p, point1, point2);
}
 
private void button1_Click(object sender, EventArgs e)
{
double[] x; x = new double[4] { 1.0, 1.0, 2.5, 2.5 };
double[] y; y = new double[4] { 1.0, 2.5, 2.5, 1.0 };
int i, j;
double Pi, Phi, cos_Phi, sin_Phi, dx, dy;
double x0 = 5.0, y0 = 3.5, xold = 0.0, yold = 0.0;
Pi = 4.0 * Math.Atan(1.0);
Phi = 6 * Pi / 180;
cos_Phi = Math.Cos(Phi);
sin_Phi = Math.Sin(Phi);
 
//смещение относительно центра вращения
for (j = 0; j < 4; j++) { x[j] += x0; y[j] += y0; }
//цикл прорисовки прямоугольников
for (i = 0; i < 60; i++)
{
//прорисовка текущего прямоугольника
for (j = 0; j <= 3; j++)
{
//пересчет координат для текущего прямоугольника
dx = x[j] - x0;
dy = y[j] - y0;
x[j] = x0 + dx * cos_Phi - dy * sin_Phi;
y[j] = y0 + dx * sin_Phi + dy * cos_Phi;
}
// прорисовка прямоугольника
xold = x[3]; yold = y[3];
for (j = 0; j <= 3; j++)
{
Draw(xold, yold, x[j], y[j]);
xold = x[j]; yold = y[j];
}
}
 
// ******************************************** Подпись ***************
Brush blueBrush = Brushes.Blue;
Font boldTimesFont = new Font("Times New Roman", 12, FontStyle.Bold |
FontStyle.Underline);
string str = "Лабораторная работа No9";
SizeF sizefText = dc.MeasureString(str, boldTimesFont);
dc.DrawString(str, boldTimesFont, blueBrush,
(pictureBox1.Size.Width - sizefText.Width) / 2,
(pictureBox1.Size.Height - sizefText.Height) / 2);
}
}
}

Надо также только для элипса
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.01.2017, 12:46
Ответы с готовыми решениями:

Определить полуоси, фокусы, эксцентриситет, уравнения директрис для каждого из эллипсов:
Определить полуоси, фокусы, эксцентриситет, уравнения директрис для каждого из эллипсов: а) x2 + 3y2 = 9 ; б) 6x2 +12y2 = 25 ; в) 5x2...

Программа тренировок для набора массы
Здравствуйте. Занимаюсь уже 2 года по похожей программе. Массу мало как нарастил, немного рельефа. Наткнулся в инете на эту прогу....

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

1
 Аватар для ViterAlex
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
31.01.2017, 01:41
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
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Threading;
using System.Windows.Forms;
 
namespace ParamEllipses
{
    public partial class MainForm : Form
    {
        #region Свойства
 
        private readonly List<float> _angles;
        private Bitmap _bmp;
        private PointF[] _points;
 
        #endregion
 
        public MainForm()
        {
            InitializeComponent();
            _angles = new List<float>();
            for (float i = 0; i < 180; i += 6)
                _angles.Add(i);
            panel1.Paint += Panel2_Paint;
        }
 
        private void buildUpButton_Click(object sender, EventArgs e)
        {
            _bmp = new Bitmap(panel1.ClientSize.Width, panel1.ClientSize.Height);
            for (var i = 1; i < nNmericUpDown.Value; i++)
            {
                _points = new PointF[_angles.Count];
                for (var j = 0; j < _angles.Count; j++)
                {
                    var angle = _angles[j];
                    _points[j] = new PointF(GetX(i, angle), GetY(i, angle));
                    panel1.Invalidate();
                    Application.DoEvents();
                    Thread.Sleep(50);
                }
                using (var g = Graphics.FromImage(_bmp))
                {
                    g.TranslateTransform(_bmp.Width / 2f, _bmp.Height / 2f);
                    g.DrawCurve(Pens.Blue, _points);
                }
                _points = null;
            }
            panel1.Invalidate();
        }
 
        private float GetX(int i, float angle)
        {
            return
                (float)
                (x0numericUpDown.Value + i * rNumericUpDown.Value / nNmericUpDown.Value * (decimal)Math.Cos(angle));
        }
 
        private float GetY(int i, float angle)
        {
            return
                (float)
                (y0numericUpDown.Value
                 + (nNmericUpDown.Value - i) * rNumericUpDown.Value / nNmericUpDown.Value * (decimal)Math.Sin(angle));
        }
 
        private void Panel2_Paint(object sender, PaintEventArgs e)
        {
            if (_bmp != null)
                e.Graphics.DrawImage(_bmp, 0, 0);
            e.Graphics.TranslateTransform(
                panel1.ClientSize.Width / 2f, panel1.ClientSize.Height / 2f);
            if (_points != null)
                e.Graphics.DrawCurve(Pens.OrangeRed, _points);
        }
    }
}
Миниатюры
Программа для вычерчивания набора из N  эллипсов, для которых определены параметрические уравнения  
Вложения
Тип файла: zip ParamEllipses.zip (19.9 Кб, 25 просмотров)
3
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.01.2017, 01:41
Помогаю со студенческими работами здесь

Программа решения набора квадратных уравнения (ax2+bx+c=0)
Программа решения набора квадратных уравнения (ax2+bx+c=0).

Определить количество чисел, для которых программа выведет такой же результат, что и для заданного числа
21 задание По какому алгоритму решать подобные задания? Неужели сидеть и все пересчитывать. Определите, количество чисел K, для...

Написать программу для вычерчивания на экране своего имени с помощью символа *
написать программу для вычерчивания на экране своего имени с помощью символа *

Разработать программу для вычерчивания различных осей координат и графика синусоиды
Помогите пожалуйста Разработайте программу для вычерчивания различных осей координат и графика синусоиды Y=A*Sin(f*X-D), где A –...

параметрические уравнения
Выяснить,какая кривая определяется параметрическим уравнением. Сделать чертёж. z=it+\frac{1}{t}


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3, Box2D, FreeType и SDL3_ttf из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
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
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru