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

Как ограничить график функции?

07.12.2023, 14:27. Показов 675. Ответов 3

Студворк — интернет-сервис помощи студентам
Задание:
Написать Windows-приложение, которое выполняет
построение четырех различных графиков сложных параметрических функций
одновременно в одной системе координат (на одном поле) различными
цветами.
Создать меня с командами: Выбор, Построение, Очистка, Информация о
графике, Выход.
Команда Выбор открывает диалоговое окно, содержащее:
- список для выбора цвета графика типа ListBox;
- список для выбора типа графика (компонент ListBox), содержащий виды
функций в аналитической форме;
- выбор диапазона построения графика ( от и до по осям х и y);
- кнопку типа Button (команда выполнить).
Не могу правильно ограничить график (часть кода):
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Point[] points = new Point[1000];
...
switch(a){
case ("x = tcos(t), y = tsin(t)")://график спираль
  
        for (int i = 0; i < points.Length; i++)
        {
            int x = Convert.ToInt32(i * Math.Cos((double)i / 10) + 700);
            int y = Convert.ToInt32(i * Math.Sin((double)i / 10) + 300);
            points[i] = new Point(x, y);
 
        }
break;
}
Пытался сделать ограничение, а выходит всякая фигня:
(График частично перекрывают полосы и спираль после первого угла начинает просто идти по прямой)
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
switch(a){
case ("x = tcos(t), y = tsin(t)")://график спираль
int a1 = 700;
int a2 = 1000;
int b1 = 300;
int b2 = 1000;
        for (int i = 0; i < points.Length; i++)
        {
            int x = Convert.ToInt32(i * Math.Cos((double)i / 10) + 700);
            int y = Convert.ToInt32(i * Math.Sin((double)i / 10) + 300);
            if ((x>=a1 && x <= a2) && (y>=b1 && y <= b2))
         {
             points[i] = new Point(x, y);
          }
        }
break;
Объясните мне пожалуйста, как правильно будет.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.12.2023, 14:27
Ответы с готовыми решениями:

Как ограничить время выполнения функции
Есть функция main, которая вызывает функцию doter. doter должна работать заданное время. Я не могу ни чего править в doter, доступ есть...

Как ограничить функции браузера?
Здравствуйте!!! Для меня важен некий пример закрытия некоторых возможностей браузера под CentOS, на примере &quot;мозилы&quot;, или...

Классы, наследование и как ограничить доступ к функции?
Есть 4 класса: админ, студент(список), коменда, комната(список) Вся инфа и функции &quot;комната&quot; доступны и &quot;админу&quot; и...

3
2 / 2 / 0
Регистрация: 14.02.2023
Сообщений: 88
08.12.2023, 10:35  [ТС]
Попробовал ограничить эллипс - появились доп полосы:
C#
1
2
3
4
5
6
7
8
9
10
for (int i = 0; i < points.Length; i++)
{ 
    int x = Convert.ToInt32(3 * Math.Cos((double)i / 10) * 100 + 700);
    int y = Convert.ToInt32(2 * Math.Sin((double)i / 10) * 100 + 300);
    if (x>=700 && x <= 10000 && y>=300 &&y <= 10000)
    {
        points[i] = new Point(x, y);
        
    } 
}
Ошибка, как я понял, именно в ограничении либо в том как он отрисовывает(Массивом точек линию):
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 switch (b)
 {
     case ("Black"):
         graphics.DrawLines(pen1, points);
         break;
     case ("Blue"):
         graphics.DrawLines(penblue, points);
         break;
     case ("Orange"):
         graphics.DrawLines(penor, points);
         break;
     case ("Red"):
         graphics.DrawLines(penred, points);
         break;
     case ("Purple"):
         graphics.DrawLines(penpu, points);
         break;
Миниатюры
Как ограничить график функции?  
0
2394 / 1923 / 763
Регистрация: 27.07.2012
Сообщений: 5,567
08.12.2023, 22:56
Fargus4510, не очень понятно, что вы хотите получить. По коду у вас какой-то выбор то по типу функции, то по цвету. Это в любом случае неправильно. Это какие-то косвенные признаки ваших ограничений. Сформулируйте их однозначнее.
1
2 / 2 / 0
Регистрация: 14.02.2023
Сообщений: 88
09.12.2023, 04:43  [ТС]
Мне надо, чтобы отрисовывалась только та часть графика, которая удовлетворяет условиям ограничений (пытался кусок эллипса из 4й четверти нарисовать, но между первой и последней точками массива зачем-то рисуются линии ):
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
for (int i = 0; i < points.Length; i++)
{ 
    int x = Convert.ToInt32(3 * Math.Cos((double)i / 10) * 100 + 700);
    int y = Convert.ToInt32(2 * Math.Sin((double)i / 10) * 100 + 300);
    points[i]= new Point(x, y );
    if ((x>=700 && x <= 1000) && (y>=300 && y<=1000))
    {
        Point poss = new Point(x, y);
        m.Add(poss);
    }
 
}
....
switch (b)
{
    case ("Black"):
          graphics.DrawCurve(penred, m.ToArray());
            break;
    
}
Миниатюры
Как ограничить график функции?  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.12.2023, 04:43
Помогаю со студенческими работами здесь

Функция внутри функции, как ограничить ее видимость
Помогите плиз, великие специалисты! Есть 2 функции. 1 и 2 Как мне ограничить видимость функции 2, чтобы ее можно было вызвать только...

Как ограничить функции или потоку использование процессора?
Это если кратко. Есть у меня очень тяжёлая функция, которая выполняется в отдельном потоке в бесконечном цикле. При этом она жрёт весь...

Найти производные функции и на одном графике построить график данной функции, график первой и второй производной.
найти производные первого и второго порядка функции и на одном графике построить график данной функции , график первой и второй...

Построить 3д-график и график линий уровня функции. Найти все точки локального экстремума функции
Построить 3д-график и график линий уровня функции. Средствами Mathcad найти все точки локального экстремума функции. z=y^4 -2xy^2...

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru