Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
7 / 7 / 2
Регистрация: 19.06.2013
Сообщений: 174
1

Правильное отображение пикселей

05.07.2013, 12:02. Показов 1285. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Соль:
Создаю окно размером 100 на 100 пикселей, используя функцию
C++
1
HWND hWnd = CreateWindow( L"D3D Tutorial", L"D3D Tutorial 02: Vertices", WS_OVERLAPPEDWINDOW, 100, 100, 100, 100,NULL, NULL, wc.hInstance, NULL );
Так вот, когда я пытаюсь вывести пиксель с координатами y=99 x=99 то ничего не рисуется.
Если увеличить размер окна до 200 на 200, то все рисуется.
Отсюда вопрос: как мне создать окно 100 на 100, чтобы там реально умещалось только 10 000 пикселей - ни больше, ни меньше.
Буду благодарен за любую помощь =)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.07.2013, 12:02
Ответы с готовыми решениями:

Помогите доделать правильное отображение координат на графике
Код: //--------------------------------------------------------------------------- #include...

Отображение пикселей при уменьшении
Здравствуйте профессионалы. Прошу строго не судить так как, еще зеленый... обясните пожалуйста...

Отображение прозрачных пикселей чёрными в Image
Когда я запихиваю прозрачную картинку в Image.Source, то все прозрачные пиксели заменяются чёрным,...

Правильное отображение
Уважаемые css-ники! помогите с правильным отображением двух мест рисунками: <!DOCTYPE html...

7
Заблокирован
Автор FAQ
05.07.2013, 12:10 2
Цитата Сообщение от Divergence Посмотреть сообщение
100, 100, 100, 100
- окно размерами 100х100 в левым верхним углом 100 100, думаю пиксел 99.99 просто выше и левее левой верхней границы. Поставь вот так
Цитата Сообщение от Divergence Посмотреть сообщение
WS_OVERLAPPEDWINDOW, 50, 50, 100, 100
1
7 / 7 / 2
Регистрация: 19.06.2013
Сообщений: 174
05.07.2013, 12:43  [ТС] 3
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- окно размерами 100х100 в левым верхним углом 100 100, думаю пиксел 99.99 просто выше и левее левой верхней границы. Поставь вот так
Я думал, что эти два параметра просто указывают на координаты нового окна (с какой точки его рисовать).
И мне это казалось незыблемой истиной оО
Неужели я думал неправильно? Если нет, то как изменение этих параметров может повлиять на систему координат в самом окне? оО
0
Заблокирован
Автор FAQ
05.07.2013, 13:03 4
Divergence, ничего не понял
ещё раз загаловок функции
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
HWND WINAPI CreateWindow(
  _In_opt_  LPCTSTR lpClassName,
  _In_opt_  LPCTSTR lpWindowName,
  _In_      DWORD dwStyle,
  _In_      int x,
  _In_      int y,
  _In_      int nWidth,
  _In_      int nHeight,
  _In_opt_  HWND hWndParent,
  _In_opt_  HMENU hMenu,
  _In_opt_  HINSTANCE hInstance,
  _In_opt_  LPVOID lpParam
);
http://msdn.microsoft.com/en-u... s.85).aspx
x [in]
Type: int
The initial horizontal position of the window.
y [in]
Type: int
The initial vertical position of the window.
nWidth [in]
Type: int
The width, in device units, of the window.
nHeight [in]
Type: int
The height, in device units, of the window.
Цитата Сообщение от Divergence Посмотреть сообщение
что эти два параметра просто указывают на координаты нового окна (с какой точки его рисовать).
- два первых на это и указывают, а вот в чьём контексте ты рисуешь это уже вопрос.
Поясняю у тебя есть главное окно, потом ты создал дочернее с левым верхним 100;100 и размером 100х100, а отрисовку ведёшь юзая графический контекст (HDC) главного окна - тогда 99;99 будет рисоваться в главном выше и левее созданного окошка

Добавлено через 30 секунд

Не по теме:

Листинг алгоритма надо, чтобы не гадать



Добавлено через 2 минуты
Divergence, посмотри
Модальное окно

Как рисовать элементарные геометрические фигуры?
1
7 / 7 / 2
Регистрация: 19.06.2013
Сообщений: 174
05.07.2013, 13:10  [ТС] 5
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Divergence, ничего не понял
ещё раз загаловок функции
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
HWND WINAPI CreateWindow(
  _In_opt_  LPCTSTR lpClassName,
  _In_opt_  LPCTSTR lpWindowName,
  _In_      DWORD dwStyle,
  _In_      int x,
  _In_      int y,
  _In_      int nWidth,
  _In_      int nHeight,
  _In_opt_  HWND hWndParent,
  _In_opt_  HMENU hMenu,
  _In_opt_  HINSTANCE hInstance,
  _In_opt_  LPVOID lpParam
);
http://msdn.microsoft.com/en-u... s.85).aspx




- два первых на это и указывают, а вот в чьём контексте ты рисуешь это уже вопрос.
Поясняю у тебя есть главное окно, потом ты создал дочернее с левым верхним 100;100 и размером 100х100, а отрисовку ведёшь юзая графический контекст (HDC) главного окна - тогда 99;99 будет рисоваться в главном выше и левее созданного окошка

Добавлено через 30 секунд

Не по теме:

Листинг алгоритма надо, чтобы не гадать



Добавлено через 2 минуты
Divergence, посмотри
Модальное окно

Как рисовать элементарные геометрические фигуры?
Спасибо, за такое громадное разъяснение
Но я подозреваю, что дело не в этом, так как точка с координатами 0;0 рисуется в координатах именно моего окна (в крайнем левом верхнем углу). Тут проблема в какой-то штуке, которая отвечает за физический размер пикселя и количество пикселей в данном окне.
То есть, я пишу, что хочу окно 100 на 100, а по факту туда по оси Y влезает лишь 50 пикселей (неважно сколько, главное что не 100, как мне хотелось бы видеть).
И собственно, самое главное для меня узнать какая-переменная, какой параметр, какая-функция отвечает за настройку пикселя, чтобы я мог сделать так, что в окне помещалось именно 10000, если его размер 100 на 100.
Как-то так
0
Заблокирован
Автор FAQ
05.07.2013, 13:15 6
Цитата Сообщение от Divergence Посмотреть сообщение
И собственно, самое главное для меня узнать какая-переменная, какой параметр, какая-функция отвечает за настройку пикселя, чтобы я мог сделать так, что в окне помещалось именно 10000, если его размер 100 на 100.
Как-то так
- не оч тебя понял конечно, думаю ты хочешь накладывать в окно целый битмап, тогда о SetPixel забудь напрочь (долго очень идти отрисовка будет). Посмотри BitBlt/StretchBlt в сочетании с CompatibleBitmap(+DC). Т.е делаешь совместимый контекст, совместимый битмап на основе твоих пикселов и затем накладываешь через BitBlt/StretchBlt всё в родной графический контекст. Как то так на скорую руку вышло написать. По BitBlt/StretchBlt и CompatibleBitmap(+DC) в гугле примеров тьма.
0
7 / 7 / 2
Регистрация: 19.06.2013
Сообщений: 174
05.07.2013, 13:43  [ТС] 7
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- не оч тебя понял конечно, думаю ты хочешь накладывать в окно целый битмап, тогда о SetPixel забудь напрочь (долго очень идти отрисовка будет). Посмотри BitBlt/StretchBlt в сочетании с CompatibleBitmap(+DC). Т.е делаешь совместимый контекст, совместимый битмап на основе твоих пикселов и затем накладываешь через BitBlt/StretchBlt всё в родной графический контекст. Как то так на скорую руку вышло написать. По BitBlt/StretchBlt и CompatibleBitmap(+DC) в гугле примеров тьма.
В моем случае я использую DirectX 9 (именно потому и происходит моя возня с пикселями).
Поэтому другие методы мне не подходят. Я использую функцию DrawPrimitive с параметром POINTLIST.
И да, про битмап все правильно.
Я сканирую битмап и каждый пиксель записываю в структуру
C++
1
2
3
4
5
struct CUSTOMVERTEX
{
FLOAT x,y,z,rwh;
DWORD color;
};
Потом эту структуру направляю в буфер DirectX и из этого буфера точки рисуются функцией DrawPrimitive.
Попытаюсь еще раз объяснить свою проблему: один пиксель в окне рисуется настолько большим, что все 10000 пикселей тупо не влезают в окно. И я спрашиваю где можно настроить физический размер одного пикселя...
0
Заблокирован
Автор FAQ
05.07.2013, 16:25 8
Divergence, я не работал с
Цитата Сообщение от Divergence Посмотреть сообщение
CUSTOMVERTEX
Здесь есть example http://msdn.microsoft.com/en-u... o.31).aspx
Download UseCustomVertex_Sample.zip.
Думаю пикселы выходят большими из за неверного PixelFormat (это я по аналогии с wglgetcurrentcontext)
1
05.07.2013, 16:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.07.2013, 16:25
Помогаю со студенческими работами здесь

Не правильное отображение
столкнулся с проблемой ВОТ ТАК СКИН РАБОТАЕТ! А ВОТ ТАК НЕТ

Правильное отображение времени
Привет! Есть строчка кода: String.format("%02d:%02d:%02d", time / 3600, time / 60 % 60, time...

Не правильное отображение в Gauge
Здравствуйте! Я применяю такую процедуру на кнопке var a,b: real; sum: real; begin...

Правильное отображение кириллицы
Привет всем ! Вот фрагмент декодирования (сам фрагмент чтения файла не привожу он не нужен) ...

Не правильное отображение кодировки!
Здрасте всем. Проблема состоит в том, что некоторые браузеры, а именно: IE, Firefox и Chrome,...

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


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

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