Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
3 / 3 / 0
Регистрация: 01.12.2010
Сообщений: 68
1

Как закрасить шар полностью?

16.12.2010, 14:30. Показов 1148. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Мне хотелось закрасить шар полностью, но при использовании команды SetFillColor закрашивался фон. Где у меня в логике ошибка??

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
#include "TXLib.h"
 
void DrawCircle (int x, int y, int r);
void Draw2Circle (int x2, int y2, int r);
void MoveCircle (int x, int y, int v, int dx, int dy, int r, int x2,
                 int y2,int v2, int dx2, int dy2, int x3, int y3,
                 int v3, int dx3, int dy3);
 
 
int main()
{
        txCreateWindow (500, 500);
        MoveCircle (200, 300, 10, 1, 1, 20, 150, 450, 15, - 1, - 1, 100,
                    50, 20, -2, 2);
}
 
void DrawCircle (int x, int y, int r)
{ 
        txSetColor (TX_GREEN);
        txSetFillColor (TX_BLACK);
        txCircle (x, y, r);
}
 
void Draw2Circle (int x2, int y2, int r)
{
        txSetColor (TX_YELLOW);
        txCircle (x2, y2, r);
}       
 
void Draw3Circle (int x3, int y3, int r)
{
        txSetColor (TX_RED);
        txCircle (x3, y3, r);
}        
        
void MoveCircle (int x, int y, int v, int dx, int dy, int r, int x2,
                 int y2,int v2, int dx2, int dy2, int x3, int y3,int v3,
                 int dx3, int dy3)
{
        while (true)
        {
                txClear ();
                
                x += dx*v;
                y += dy*v;
                
                if (x - r < 0 || x + r > 500)
                {
                        dx = - dx;
                } 
 
                if (y - r < 0 || y + r > 500)
                {
                        dy = - dy;
                }    
               
                 DrawCircle (x, y, r);
                
                 x2 += dx2*v2;
                 y2 += dy2*v2;
                 
                 if (x2 - r < 0 || x2 + r > 500)
                 {
                        dx2 = - dx2;
                 }
                 
                 if (y2 - r < 0 || y2 + r > 500)
                 {
                        dy2 = - dy2;
                 }
                 
                 Draw2Circle (x2, y2, r);
                 
                 x3 += dx3*v3;
                 y3 += dy3*v3;
                 
                 if (x3 - r < 0 || x3 + r > 500)
                 {
                        
                        dx3 = - dx3;
                 }
                 
                 if (y3 - r < 0 || y3 + r > 500)
                 {
                        dy3 = - dy3;
                 }
                 Draw3Circle (x3, y3, r);
                 
                 txSleep (100);
         }
}
Добавлено через 14 минут
О!dihlofos зашёл, благодетель мой))
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.12.2010, 14:30
Ответы с готовыми решениями:

Построить звезду в и закрасить её полностью каким-либо цветом
помогите пожалуйста.нужно построить звезду в паскаль abc и закрасить её полностью каким-либо цветом

Какова вероятность вынуть из урны: белый шар; черный шар; синий шар
В урне 3 белых и 5 черных шара. Какова вероятность вынуть из урны: а) белый шар б) черный шар...

Свинцовый шар опущен в воду. Какую силу нужно приложить, чтобы поднять этот шар?
Ребят, есть задачка: Решение начинается с предложения: Имеем: Fискомое, Fтяжести,...

Выбранный шар оказался белым. Какова вероятность того, что этот шар вынут из первой урны?
Имеются 2 одинаковые урны. В первой урне 7 белых и 3 черных шара, а во второй - 6 белых и 4 черных....

3
Бродяга
314 / 268 / 56
Регистрация: 27.08.2010
Сообщений: 553
16.12.2010, 14:39 2
TXLib.h, а загляните в файл TXLib.h. Найдите функцию txClear(), написано: "Стирает холст текущим цветом заполнения." Т.е. вы установили цвет заполнения, нарисовали сначала окружность, а потом заполнили весь экран этим же цветом. Наверное стоит каждый раз перед использованием txClear() менять цвет заполнения (цвет фона).
Типа вот:
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
#include "TXLib.h"
 
class Circle
{
public:
    Circle(int x, int y, int s, int dx, int dy, int r, COLORREF cl)
    {
        xCoord = x; 
        yCoord = y; 
        speed = s; 
        dirX = dx; 
        dirY = dy; 
        rad = r; 
        color = cl;
    }
    void Move();
    void Draw();
private:
    int xCoord;
    int yCoord;
    int speed;
    int rad;
    int dirX;
    int dirY;
    COLORREF color;
}; 
///////////////////////////////////////////
void Circle::Draw()
{
    txSetColor (color);
    txSetFillColor(color);
    txCircle (xCoord, yCoord, rad);
}
///////////////////////////////////////////
void Circle::Move()
{
    xCoord += dirX * speed;
    yCoord += dirY * speed;
    
    if (xCoord - rad < 0 || xCoord + rad > 500)
    {
        dirX = - dirX;
    } 
 
    if (yCoord - rad < 0 || yCoord + rad > 500)
    {
        dirY = - dirY;
    }    
               
    Draw();
}
///////////////////////////////////////////
int main()
{
    
        txCreateWindow (500, 500);
    
    Circle A(200, 300, 10, 1, 1, 20, TX_RED);
    Circle B(150, 400, 15, -1, -1, 20, TX_GREEN);
    while (true)
    {
        txSetFillColor (TX_BLACK); // устанавливаем цвет фона
        txClear();  // и заполняем им весь холст
        A.Move();
        B.Move();
        txSleep (100);
    }
}
1
3 / 3 / 0
Регистрация: 01.12.2010
Сообщений: 68
16.12.2010, 14:49  [ТС] 3
dihlofos, кстати, я начал разбираться с классамиих ведь можно начать изучать до структур?

Добавлено через 58 секунд
Всё работает
0
Бродяга
314 / 268 / 56
Регистрация: 27.08.2010
Сообщений: 553
16.12.2010, 15:07 4
Цитата Сообщение от TXLib.h Посмотреть сообщение
их ведь можно начать изучать до структур
Ну в принципе да, если разберётесь с классами, структуры почти автоматически станут понятными)
0
16.12.2010, 15:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.12.2010, 15:07
Помогаю со студенческими работами здесь

шар поверхность которого не покрыли лаком через некоторое время растрескался а шар покрытый лаком остался целый, почему?
Один вопрос - одна тема! Здравствуйте помогите решить задачи по МКТ текс задач: 4 Из сырова...

Как сделать Шар со ссылками?
Здравствуйте. На многих сайтах я вижу очень впечатлительный шар, внутри которого плавают ссылки....

На экране изобразить стрелу и шар. Организовать управление стрелой, для попадания в шар знаками "стрелка влево", "стрелка вправо"
На экране изобразить стрелу и шар. Организовать управление стрелой, для попадания в шар знаками...

Диаграмма Ганта в линию - как закрасить область или как по-другому ее построить
Есть задание - построить диаграмму Ганта для нескольких машин. Для начала - одна машина. Была...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru