#include
#include
#include
using namespace std;
//sourcea.ir
int color = 0;
GLint width = 800;
GLint hight = 600;
void init()
{
glClearColor(0, 1, 1, 0);
glMatrixMode(GL_PROJECTION);
gluOrtho2D(0, width, 0, hight);
}
void drawSquare(GLint x1, GLint y1, GLint x2, GLint y2, GLint x3, GLint y3, GLint x4, GLint y4)
{
if (color == 0)
{
glColor3f(1, 1, 1);
color = 1;
}
else
{
glColor3f(0, 0, 0);
color = 0;
}
glBegin(GL_POLYGON);
glVertex2i(x1, y1);
glVertex2i(x2, y2);
glVertex2i(x3, y3);
glVertex2i(x4, y4);
glEnd();
}
void chessboard()
{
glClear(GL_COLOR_BUFFER_BIT);
GLint x, y;
GLint squareWidthInPixel = 100;
GLint squareHightInPixel = 75;
for (x = 0; x <= width; x += squareWidthInPixel)
{
for (y = 0; y <= hight; y += squareHightInPixel)
{
drawSquare(x, y + squareHightInPixel, x + squareWidthInPixel, y + squareHightInPixel, x + squareWidthInPixel, y, x, y);
}
}
glFlush();
}
int main(int agrc, char ** argv)
{
glutInit(&agrc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowPosition(100, 100);
glutInitWindowSize(800, 600);
glutCreateWindow("Chess Board using 'OpenGL' in C++");
init();
glutDisplayFunc(chessboard);
glutMainLoop();
}
توضیحات:
صورت سوال:
چاپ صفحه شطرنج در c++
با اجرای این برنامه در محیط کنسول یک صفحه شطرنج خواهید داشت.
شما میتوانید سوالات خود را از طریق ایمیل پشتیبانی (INFO[at]SOURCEA[.]IR) یا در قسمت نظرات سوال خود را بپرسید.
موفق باشید
A.J
پست های مرتبط:
استفاده کردن از مفهوم variadic templates در C++ برای تعریف توابع و کلاس های قالب با تعداد متغیری از پارامتر ها
مفهوم variadic templates در C++ به برنامه نویسان اجازه میدهد تا توابع و کلاسهای قالبی را تعریف کنند که تعداد متغیری از پارامترها را…
استفاده کردن از مفهوم move semantics در C++ برای بهینه سازی انتقال داده ها به جای کپی
مفهوم move semantics در C++ امکان انتقال منابع (مانند حافظه دینامیک) به جای کپی کردن آنها فراهم میکند. این بهینهسازی از تبدیل یک…
استفاده کردن از مفهوم RAII (Resource Acquisition Is Initialization) در C++ برای مدیریت منابع به صورت خودکار
مفهوم RAII یک الگوی طراحی در C++ است که به برنامه نویس امکان میدهد منابع (مانند حافظه دینامیک، فایلها، اشیاء سخت افزاری و …) را به…
استفاده کردن از مفهوم CRTP (Curiously Recurring Template Pattern) در C++ برای ارث بری از کلاس های قالب
الگوی CRTP یک الگوی طراحی در C++ است که اجازه میدهد کلاسی از یک کلاس قالب دیگر ارث بری کند و از قالب خود برای ارث بری…
استفاده کردن از توابع متغیر (variable templates) در C++ برای تعریف متغیر های قالب دار
توابع متغیر (variable templates) از ویژگیهای C++11 به بعد است که اجازه میدهد متغیرهایی با قالبهای مختلف تعریف شوند. این ویژگی…
استفاده کردن از توابع constexpr برای ارزیابی ثابت در زمان کامپایل در C++
توابع constexpr در C++ امکان ارزیابی ثابت یا constant expression در زمان کامپایل را فراهم میکنند. این توابع به کمک این امکان، اجازه…