29.05.2020, 04:52 [+3 UTC]
в нашей команде: 4 568 чел. | участники онлайн: 1 (рекорд: 21)

:: РЕГИСТРАЦИЯ

задать вопрос

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.89 (25.04.2020)
JS-v.1.45 | CSS-v.3.39

Общие новости:
13.04.2020, 00:02

Форум:
28.05.2020, 23:29

Последний вопрос:
28.05.2020, 16:14
Всего: 152510

Последний ответ:
28.05.2020, 18:16
Всего: 260210

Последняя рассылка:
29.05.2020, 01:15

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
10.11.2009, 03:20 »
MrSpencer
Спасибо большое за подробнейшее и чёткое объяснение задачи! [вопрос № 174082, ответ № 256304]
01.11.2009, 16:20 »
Рыленков Геннадий Петрович
Очень интересно, а главное - неожиданно верный ответ! [вопрос № 173805, ответ № 255980]
05.04.2012, 08:58 »
Dima Fedorov
Все хорошо сделано, мне понравилось. Оценка 5 [вопрос № 185748, ответ № 270438]

РАЗДЕЛ • .NET Framework / C# / Java

Создание программ на программной платформе .NET Framework и языках С# и Java.

[администратор рассылки: Коцюрбенко Алексей Владимирович (Старший модератор)]

Лучшие эксперты в этом разделе

Коцюрбенко Алексей Владимирович
Статус: Старший модератор
Рейтинг: 1519
Зенченко Константин Николаевич
Статус: Старший модератор
Рейтинг: 461
solowey
Статус: Профессионал
Рейтинг: 423

Перейти к консультации №:
 

Консультация онлайн # 196958
Раздел: • .NET Framework / C# / Java
Автор вопроса: Kseniia (Посетитель)
Отправлена: 04.11.2019, 22:21
Поступило ответов: 1

Здравствуйте! У меня возникли сложности с таким вопросом:
Необходимо реализовать программу удаления невидимых граней с помощью z-буфера. Имеется код с реализованным построчным проходом, но есть непонятные моменты, а именно вот эта проверка
// Проверяем попадает ли пиксель в треугольник
if (x >= (y - triangle.b1) / triangle.k1)
{
if ((triangle.sign2 == true && y < triangle.k2 * x + triangle.b2) || (triangle.sign2 == false && y > triangle.k2 * x + triangle.b2))
{
if ((triangle.sign3 == true && y < triangle.k3 * x + triangle.b3) || (triangle.sign3 == false && y > triangle.k3 * x + triangle.b3))

Приложение:

-----
 Прикрепленный файл: скачать (RAR) » [206.8 кб]

Состояние: Консультация закрыта

Ответ # 279083 от solowey (Профессионал)

Здравствуйте, Kseniia!

                        // Проверяем попадает ли пиксель в треугольник
                        if (x >= (y - triangle.b1) / triangle.k1)
                        {
                            if ((triangle.sign2 == true && y < triangle.k2 * x + triangle.b2) || (triangle.sign2 == false && y > triangle.k2 * x + triangle.b2))
                            {
                                if ((triangle.sign3 == true && y < triangle.k3 * x + triangle.b3) || (triangle.sign3 == false && y > triangle.k3 * x + triangle.b3))

Тут как указано в комментарии идет проверка на нахождение точки в треугольнике, приведенного к плоскости X-Y. Из трехмерной системы, проецируется на двухмерную.

Раскраска идет построчно, как в телевизоре. Как только точка оказывается в плоскости треугольника, происходит изменение белого цвета на цвет треугольника. Слева на право, сверху - вниз.


Консультировал: solowey (Профессионал)
Дата отправки: 11.11.2019, 09:15

-----
 Прикрепленный файл (кликните по картинке для увеличения):

Рейтинг ответа:

+1

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Мини-форум консультации № 196958

solowey
Профессионал

ID: 400484

# 1

= общий = | 05.11.2019, 12:38 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

                        // Проверяем попадает ли пиксель в треугольник
                        if (x >= (y - triangle.b1) / triangle.k1)
                        {
                            if ((triangle.sign2 == true && y < triangle.k2 * x + triangle.b2) || (triangle.sign2 == false && y > triangle.k2 * x + triangle.b2))
                            {
                                if ((triangle.sign3 == true && y < triangle.k3 * x + triangle.b3) || (triangle.sign3 == false && y > triangle.k3 * x + triangle.b3))

Тут как указано в комментарии идет проверка на нахождение точки в треугольнике, приведенного к плоскости X-Y. Из трехмерной системы, проецируется на двухмерную.

Раскраска идет построчно, как в телевизоре. Как только точка оказывается в плоскости треугольника, происходит изменение белого цвета на цвет треугольника. Слева на право, сверху - вниз.

-----
 Прикрепленный файл (кликните по картинке для увеличения):

 

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

Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.16217 сек.

© 2001-2020, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.89 от 25.04.2020
Версия JS: 1.45 | Версия CSS: 3.39