Показать сообщение отдельно
Старый 05.03.2012, 13:42   #25
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Image и артефакты

Тест 4. Отрисовка примитивов
Попробуем нарисовать примитив в картинку. Размеры картинки выберем с учётом возможных артефактов: не превосходящими размеры окна. Усложним задачу, назначив точку вывода на 50 пикселей левее и выше начала картинки.
    xAppTitle("sample");
	xGraphics3D(800, 600, 32, false, true);
    xColor(190,0,0);
    int img=xCreateImage(600,600);
    xSetBuffer(xImageBuffer(img));
    xOrigin(-50,-50);
	xRect(0,0,650,650,true);
	xColor(255,100,0);
	xOval(0,0,650,650,true);
    xSetBuffer(xBackBuffer());
    xOrigin(0,0);
    xColor(255,255,0);
	while(!xKeyDown(1) || xWinMessage("WM_CLOSE"))
	{

	    xCls();
	    xRenderWorld();
        xDrawBlock(img,0,0);
        xRect(0,0,xImageWidth(img),xImageHeight(img),false);
	    xFlip();
	}
    return 0;
Что я получаю на выходе:
Нажмите на изображение для увеличения
Название: test4.jpg
Просмотров: 955
Размер:	20.6 Кб
ID:	16280
Прямоугольник должен занять всю область т.к. -50+650=600 (начало_вывода+размер=конец_вывода). Визуально - до рамки он не дотягивает. Для контроля вывожу поверх круг, с такими же аргументами - он действительно касается рамки. Но почему квадрат рисуется неправильно?
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием