Загадка :)
Придумал загадку. Интересно кто-нибудь угадает:
"Слева белый свет, справа -- красный. Что это?"
"Слева белый свет, справа -- красный. Что это?"
Здравствуйте! Может быть здесь есть специалисты? Нужно решить уравнение: K1 K2 K3 X + B X + C X = D, где 4 > K1 >= K2 >= K3 > 2 -- _вещественные_ коэффициенты. B, C, D -- положительные числа. Интересует только действительный корень. Спасибо за внимание!
>>> Страница проекта на berlios.de (berlios.de)
Здравствуйте!
Вот, пример простейшего SDL-приложения (вернее тут только фрагмент - функция
инициализации OpenGL и прорисовки экрана), который выводит изображение на
экран влевом нижнем углу в масштабе 1:1.
Сглаживание работает, но при этом откуда-то появляется диагональная линия (такая
же как при методе задания граней GL_TRIANGLE_FAN - но там она ещё
естественна) от левого нижнего угла текстуры, до правого верхнего. Откуда она
берётся (точно не из рисунка - проверил неоднократно "пипеткой" в Gimp)??
И ещё поразила скорость вывода при попытки вывести изображение размером
1024x768 - ужасно долго (секунд 10, наверное проходит до появления картинки)!
При отключении сглаживания - мгновенно. Оно что там не аппаратно что ли
производиться?
static void draw_screen( void )
{
glClear(GL_COLOR_BUFFER_BIT);
glLoadIdentity();
glTranslatef(-1024.0f/2, -768.0f/2, -768.0f/2);
glBegin(GL_QUADS);
glBindTexture( GL_TEXTURE_2D, texture );
glTexCoord2f( 0.0f, texh);
glVertex2f( 0.0f, 0.0f);
glTexCoord2f( texw, texh);
glVertex2f( texpw, 0.0f);
glTexCoord2f( texw, 0.0f);
glVertex2f( texpw, texph);
glTexCoord2f( 0.0f, 0.0f);
glVertex2f( 0.0f, texph);
glEnd();
SDL_GL_SwapBuffers();
}
static void setup_opengl( int width, int height )
{
glViewport(0,0,width, height);
//Todo: load textures
if (!LoadGLTextures()) {
printf ("Failure to load textures");
exit(1);
}
glEnable(GL_TEXTURE_2D); //enable texture mapping
glClearColor(0.0f, 0.0f, 0.0f, 0.0f); //Black Background
glDisable(GL_DEPTH_TEST); //disables depth testing
glDisable(GL_ALPHA_TEST);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_BLEND);
glEnable(GL_POLYGON_SMOOTH);
glHint(GL_POLYGON_SMOOTH_HINT,GL_NICEST);
glShadeModel(GL_SMOOTH); //enables smooth color shading
glMatrixMode(GL_PROJECTION);
glLoadIdentity(); //Reste projection matrix
gluPerspective(90.0f, (GLfloat)width/(GLfloat)height, 1.0f, 1024.0f);
//calculate aspect ratio of the window
glMatrixMode(GL_MODELVIEW);
}Приветсвую всех!
Вот, меня вопрос заинтересовал - возможно ли выжигать рисунки на CD, чтоб их было
видно визуально на поверхности диска. Т.е. должны ли отличаться нули и единицы
записанные на CD визуально?
Сам я попытался для определения этого написать нехитрую программку, которая
вроде как определяет "полосатый" образ:
#include <stdio.h>
#include <stdlib.h>
#define MB *1024*1024
main()
{
for (long long i=0; i<100 MB; i++)
printf ("%c",'\0');
for (long long i=0; i<100 MB; i++)
printf ("%c",255);
for (long long i=0; i<100 MB; i++)
printf ("%c",'\0');
for (long long i=0; i<100 MB; i++)
printf ("%c",255);
for (long long i=0; i<100 MB; i++)
printf ("%c",'\0');
for (long long i=0; i<100 MB; i++)
printf ("%c",255);
for (long long i=0; i<100 MB; i++)
printf ("%c",'\0');
}
К сожалению запись файла созданного такой программой на CD-RW (уже до этого
многократно раз перезаписанного) ничего увидеть не позволила :-(
CD-R портить не охота, совсем чистого CD-RW у меня к сожалению нет - поэтому
ещё проверить как-то нет у меня возможности..
В общем хотелось бы узнать возможно ли всё же это..Очень мне вот, хочеться перегрузить оператор присваивания,
но не просто класса, а именно указателя на класс..
Если быть точным, то хочется сделать что-то вроде этого:
class cl {...};
cl *operator= (cl* (&a), cl* (&b))
{
b->number_links++;
return a=b;
};
Может быть можно что-нибудь сделать?| ← назад | следующие → |