Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
Micro
43 / 43 / 5
Регистрация: 12.11.2011
Сообщений: 436
1

Вычислить максимальное смещение относительно начала

12.08.2018, 17:29. Просмотров 797. Ответов 3
Метки нет (Все метки)

Делаю вертикальный скролл (scrollbar) и требуется вычислить максимальное смещение



C++
1
int scroll_count = 10;

тут все ровно, просто не даю смещению делаться больше 0
C++
1
2
3
4
5
6
7
8
    bool  CGroupBox::ScrollUp()
    {
        
        OffsetY += scroll_count;
        if (OffsetY > 0)
            OffsetY = 0;
        return true;
    }
а вот кривая версия скролла вниз
C++
1
2
3
4
5
6
7
8
bool  CGroupBox::ScrollDown()
    {
 
        if (abs(OffsetY) + visible_area < total_area)
            OffsetY -= scroll_count;
 
        return true;
    }
visible_area это видимая часть = 300px
total_area это сколько всего картинки = 1250px

в итоге в последней делает некорректно


мини "чертеж" прикрепил ниже
возможно ошибся разделом, но все же геометрия и математика тут преобладает.


если нужно то как это все рисуется
C++
1
2
3
4
5
6
7
8
9
10
11
for (std::vector<CCheckBox*>::iterator i = m_CheckBoxes.begin(); i != m_CheckBoxes.end(); i++)
        {
            int area = (*i)->GetLocation().Y + OffsetY;
            if (area < Location.Y - 20) continue;
 
            if (drawn >= visible_area + 20) 
                break;
 
            (*i)->Draw(X, Y, OffsetY);
            drawn += 20;
        }
Вычислить максимальное смещение относительно начала
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.08.2018, 17:29
Ответы с готовыми решениями:

Смещение Div относительно остальных
Есть случайное количество блоков когда, они создаются пустыми в них помещается...

Убрать смещение строки поиска вниз относительно вставляемых кнопок
Происходит смещение строки поиска вниз относительно вставляемых кнопок. Что...

Зная часовой пояс 'Europe/Kiev' - узнать смещение относительно UTC
Сайт работает в формате UTC. Мне нужно узнать время смещения пользователя в...

Определить максимальное смещение точки от положения равновесия
1. Материальная точка совершает гармоничные колебания, при этом ее полная...

Поворот изображения на 45° относительно начала координат
Здравствуйте всем. Мне нужна небольшая помощь. Нужно закрасить фигуру. Вот...

3
jogano
Модератор
Эксперт по математике/физике
4350 / 2791 / 959
Регистрация: 09.10.2009
Сообщений: 5,005
Записей в блоге: 4
12.08.2018, 17:51 2
Цитата Сообщение от Micro Посмотреть сообщение
возможно ошибся разделом, но все же геометрия и математика тут преобладает.
Таки ошиблись. Геометрии здесь как кот наплакал, а требуется разбираться с кодом. Перенаправляю в С++
0
zss
Модератор
Эксперт С++
7480 / 6849 / 4324
Регистрация: 18.12.2011
Сообщений: 18,114
Завершенные тесты: 1
12.08.2018, 18:20 3
Лучший ответ Сообщение было отмечено Micro как решение

Решение

Цитата Сообщение от Micro Посмотреть сообщение
OffsetY += scroll_count;
C++
1
OffsetY -= scroll_count;
Аналогично
C++
1
2
3
4
5
6
7
bool  CGroupBox::ScrollDown()
{
    OffsetY += scroll_count;
    if (OffsetY + visible_area < total_area)
         OffsetY = total_area - visible_area; 
    return true;
 }
1
Micro
43 / 43 / 5
Регистрация: 12.11.2011
Сообщений: 436
17.08.2018, 17:46  [ТС] 4
C++
1
2
3
4
5
6
7
8
9
if (m_TotalArea > m_VisibleArea)
            {
                if (abs(OffsetY) > (m_TotalArea - m_VisibleArea + spacer))
                {
                    OffsetY = -(m_TotalArea - m_VisibleArea + spacer);
                    
                }
                    
            }
где spacer это отступ от границ, аля padding в css
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.08.2018, 17:46

Определение положения точки относительно начала координат
#include &lt;stdlib.h&gt; #include &lt;math.h&gt; using namespace std; void main() {...

Максимальное смещение гармонически колеблющейся на пружине материальной точки равно 20 см
5)Максимальное смещение гармонически колеблющейся на пружине материальной точки...

Определите максимальное смещение изображения груза на экране от положения равновесия
Небольшой груз, подвешенный на нити длиной 2,5 м, совершает гармонические...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru