Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
0 / 0 / 0
Регистрация: 29.03.2021
Сообщений: 16

Штриховка замкнутой области в системе координат

01.05.2021, 17:13. Показов 3320. Ответов 6

Студворк — интернет-сервис помощи студентам
Нужно переписать предпоследнюю часть кода, так что бы он заштриховал нужную замкнутую область.
Начало кода начинается с void Hatch (), проблема в том что он штрихует чуть-чуть ее, а далее он штрихует все что справа
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#include <graphics.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include<cmath>
const int X0= 200, Y0 = 400,
        k= 60;
int ScreenX (float x)
{
    return X0+k*x;
}
int ScreenY (float y)
{
    return Y0-k*y;
}
void Axes()
{
int i, xe, ye;
char s[5];
line (X0, 0, X0, 599);
line (0, Y0, 799, Y0);
for (i=0; i <= (800-X0)/k; i++)
    {
    xe= ScreenX(i);
    line (xe, Y0-2, xe, Y0+2);
    sprintf(s, "%d", i);
    outtextxy(xe-8, Y0+4, s);
    }
for (i=1; i <= (600-X0)/k; i++)
{
ye= ScreenY(i);
line (X0-2, ye, X0+2, ye);
sprintf (s, "%d", i);
outtextxy(X0-10, ye, s);
}
}
//------------------------------------------
void Point (float x, float y, int color)
{
    int xe, ye;
    xe = ScreenX(x);
    ye = ScreenY(y);
    if (xe >= 0 && xe < 800 &&
        ye >= 0 && ye < 600);
      putpixel(xe, ye, color);
}
float f1 (float x)
{
    return 2-x*x;
}
float f2 (float x)
{
    return x;
}
int odz1 (float x)
{
    return (x >= -3);
}
//----------------------------------------
void Plot ()
{
    float xmin = -1.*X0/k,
        xmax = (800. - X0)/k;
    float x,
        h= (xmax - xmin)/1000;
    for (x= xmin; x<= xmax; x+=h)
        if ( odz1(x) )
            Point(x, f1(x), LIGHTRED);
            for (x = xmin; x<= xmax; x+=h)
    Point (x, f2(x), LIGHTRED);
}
//----------------------------------------------
float Solve (float a, float b, float eps)
{
float c, fa, fc;
while(fabs(b-a)>eps) {
    c = (a + b)/ 2.;
    fa = f1(a) - f2(a);
    fc = f1(c) - f2(c);
    if (fa*fc < 0) b = c;
    else            a = c;
    }
return (a + b)/ 2.;
}
//---------------------------------
void Cross ()
{
    float y, x1, x2;
    int xe, ye;
     char s[30];
    x1 = Solve(1., 1., 0.001);
    y = f1(x1);
    xe = ScreenX(x1);
    ye = ScreenY(y);
    sprintf(s, "x1:%5.2f", x1);
    outtextxy(xe+5, ye+2, s);
    sprintf(s, "y:%5.2f", y);
    outtextxy(xe+5, ye+22, s);
    //----------------------------
    x2 = Solve (-2., -2., 0.001);
    y = f1(x2);
    xe = ScreenX(x2);
    ye = ScreenY(y);
    sprintf(s, "x2:%5.2f", x2);
    outtextxy(xe+5, ye+2, s);
    sprintf(s, "y2:%5.2f", y);
    outtextxy(xe+5, ye+22, s);
}
//--------------------------------------
void Hatch()
{
    const int N = 30;
    float x, x2, x1, h = (x2 - x1) / (N + 1);
    int xe, yUp, yDown;
    for (x = x1+h; x <= x2; x += h)
        {
        xe = ScreenX (x);
        yUp = ScreenY (f1(x));
        yDown = ScreenY (f2(x));
        line (xe, yUp, xe, yDown );
        }
//-----------------------------------------------
}
main()
{
    initwindow(800, 600);
    Axes();
    Plot();
    Cross();
    Hatch();
    getch();
    closegraph();
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.05.2021, 17:13
Ответы с готовыми решениями:

Составить логический выражение для описания сложных областей точек в системе координат XY
2)Составить логический выражение для описания сложных областей точек в системе координат XY. Определить принадлежность этой области точки,...

Составить логическое выражение для описания сложных областей точек в системе координат XY. Выявить принадлежность этой области точки
Составить логическое выражение для описания сложных областей точек в системе координат XY. Выявить принадлежность этой области точки,...

Проверить, находится ли заданая точка в заштрихованной области или на ее границе в системе координат...
Дана точка на плоскости с координатами (х, у). Составить программу, которая выдает одно из сообщений «Да», «Нет», «На границе» в...

6
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
01.05.2021, 17:24
Цитата Сообщение от H1KKK14 Посмотреть сообщение
Начало кода начинается с void Hatch (), проблема в том что он штрихует чуть-чуть ее, а далее он штрихует все что справа
Цитата Сообщение от H1KKK14 Посмотреть сообщение
float x, x2, x1, h = (x2 - x1) / (N + 1);
    int xe, yUp, yDown;
    for (x = x1+h; x <= x2; x += h)
А где ты инициализируешь x1 и x2?
0
0 / 0 / 0
Регистрация: 29.03.2021
Сообщений: 16
01.05.2021, 17:29  [ТС]
эээмммм не совсем понял.... ни где наверно..... я просто не понимаю..... как сделать правильно
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
01.05.2021, 17:31
Лучший ответ Сообщение было отмечено H1KKK14 как решение

Решение

Цитата Сообщение от H1KKK14 Посмотреть сообщение
эээмммм не совсем понял.... ни где наверно..... я просто не понимаю..... как сделать правильно
Сейчас у тебя в них мусор. Нужно задать им конкретные значения, например
C++
1
float x, x2 = 200, x1 = 100, h = (x2 - x1) / (N + 1);
1
0 / 0 / 0
Регистрация: 29.03.2021
Сообщений: 16
01.05.2021, 17:38  [ТС]
задал, при этом щас задавал разные значения, штриховка и во все пропала и не появляется
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
01.05.2021, 17:44
Цитата Сообщение от H1KKK14 Посмотреть сообщение
задал, при этом щас задавал разные значения, штриховка и во все пропала и не появляется
Ты сам писал программу? И не можешь разобраться, какие значения нужно задавать?

Добавлено через 1 минуту
Попробуй x2 = 10, x1 = 0

Добавлено через 32 секунды
И увеличивай x2, пока что-то не появится
0
0 / 0 / 0
Регистрация: 29.03.2021
Сообщений: 16
01.05.2021, 17:48  [ТС]
да я сам писал, затупил.......
у меня все получилось, там нужны были значения именно координатных прямых, а не пикселей
спасибо за помощь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.05.2021, 17:48
Помогаю со студенческими работами здесь

Штриховка замкнутой области
Никак не получается заштриховать кусок этой области. Кто знает как это сделать? #include &lt;graphics.h&gt; #include &lt;stdio.h&gt; ...

Штриховка замкнутой области в заданном графике функции
Процедура штриховки void Hatch().Надо заштриховать вот этот второй кусок замкнутой области слева, у которого 2 точки пересечения с осью...

Написать программу построения области в декартовой системе координат
Написать программу построения области в декартовой системе координат, выбираемую из списка: \begin{cases} &amp;-4x1 + x2 \leq 4,\ \\ ...

Будет ли зависеть скорость циркуляции жидкости в замкнутой системе от давления в этой системе
Здравствуйте.Объясните,пожалуйста,будет ли зависеть скорость циркуляции жидкости в замкнутой системе от давления в этой системе?Такой...

Написать систему двойных неравенств для области, перейдя к сферической системе координат
Написать систему двойных неравенств для области Q: x\leq 0, y \leq 0, z \leq 0, {x}^{2} + {y}^{2} + {z}^{2} \leq 16, перейдя к...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru