วิธีการสร้างวงกลมใน OpenGL

ผู้เขียน: Eugene Taylor
วันที่สร้าง: 15 สิงหาคม 2021
วันที่อัปเดต: 12 พฤษภาคม 2024
Anonim
Drawing a circle with OpenGL :: OpenGL and GLSL with C++ :: lesson 6
วิดีโอ: Drawing a circle with OpenGL :: OpenGL and GLSL with C++ :: lesson 6

เนื้อหา

OpenGL หรือ Open Graphics Library เป็น API กราฟิก (Application Programming Interface) สำหรับเขียนแอปพลิเคชัน 2D และ 3D ในภาษาโปรแกรมและแพลตฟอร์มต่างๆ สามารถใช้เพื่อแสดงผลอะไรก็ได้ตั้งแต่วัตถุธรรมดาดั้งเดิมไปจนถึงฉาก 3 มิติที่ซับซ้อน Open GL ใช้กันอย่างแพร่หลายในการออกแบบคอมพิวเตอร์การสร้างภาพทางวิทยาศาสตร์การจำลองการบินและวิดีโอเกม แม้ว่า OpenGl จะไม่มีวิธีการวาดวงกลมโดยตรง แต่ก็เป็นไปได้ที่จะสร้างขึ้นโดยใช้ชุดของเส้น คุณจะต้องมีความรู้พื้นฐานเกี่ยวกับ OpenGL เพื่อวาดวงกลม

ขั้นตอนที่ 1

สร้างโปรแกรมพื้นฐานด้วยวิวพอร์ต OpenGL หากคุณไม่คุ้นเคยกับกระบวนการนี้มีบทช่วยสอนในหน้า OpenGL


ขั้นตอนที่ 2

เพิ่มไฟล์ math.h.header ลงในโปรแกรมของคุณโดยป้อนรหัสต่อไปนี้ที่จุดเริ่มต้นของโปรแกรม: #include . สิ่งนี้จะให้ฟังก์ชัน cos () และ sin () (ไซน์และโคไซน์) ที่จำเป็นในการคำนวณวงกลม

ขั้นตอนที่ 3

เริ่มเมธอดวงกลมโดยการเพิ่มรหัสต่อไปนี้ก่อนแสดงฟังก์ชันเรียกกลับ:

โมฆะ drawCircle (GLint x, GLint y, รัศมี GLint, int num_lines) {}

ตัวแปร "x" และ "y" จะถูกใช้เพื่อกำหนดจุดศูนย์กลางของวงกลมในหน้าต่างของคุณในขณะที่ "รัศมี" กำหนดรัศมีของวงกลม จำนวนเต็ม "num_lines" คือจำนวนบรรทัดที่ใช้ในการเขียนวงกลม ยิ่งตัวเลขนี้สูงเท่าใดวงกลมก็จะยิ่งเรียบขึ้น

ขั้นตอนที่ 4

เพิ่มรหัสการกำหนดค่าต่อไปนี้ภายในคีย์:

มุมลอย GO int num_lines GO glColor3f (0.0, 0.0, 0.0) GO

ตัวแปร "มุม" จะประกอบด้วยมุมของเส้นที่ใช้สร้างวงกลม การเรียกใช้ฟังก์ชัน glColor3f () จะกำหนดสีของเส้นเป็นสีดำโดยที่ชุดของ 0 สามตัวจะสอดคล้องกับความเข้มของสีแดงสีเขียวและสีน้ำเงินในระดับ 0 ถึง 1


ขั้นตอนที่ 5

เพิ่มรหัสต่อไปนี้ด้านล่างฟังก์ชัน glColor3f () จากขั้นตอนที่ 4:

glBegin (GL_LINE_LOOP) ไป

สิ่งนี้จะบอก OpenGL ว่าเส้นที่ตามมาเกี่ยวข้องกับการลากเส้น โดยเฉพาะจะวาด "GL_LINE_LOOP" ซึ่งเป็นชุดของเส้นที่เชื่อมต่อกัน

ขั้นตอนที่ 6

ป้อนรหัสต่อไปนี้สำหรับสำหรับลูปหลังจากการเรียก glBegin ():

สำหรับ (int i = 0; i <row_number; i ++) {angle = i * 2 * M_PI / num_line; glVertex2f (x + (cos (มุม) * รัศมี), y + (บาป (มุม) * รัศมี)); }

ลูปนี้ทำสามสิ่ง ขั้นแรกมันจะวนซ้ำตามค่าของ "num_lines" โดยที่ num_lines คือจำนวนเต็มวาดเส้นในการวนซ้ำแต่ละครั้งและทำให้วงกลมประกอบด้วยเส้นตรง num_lines ประการที่สองคำนวณมุมของเส้นที่สัมพันธ์กับจุดศูนย์กลางของวงกลมในหน่วยเรเดียน "M_P" คือค่าคงที่ที่กำหนดในคณิตศาสตร์ h แทนค่า pi ในที่สุดการเรียกไปที่ glVertex2f () จะคำนวณพิกัดของจุดสิ้นสุดของเส้น


ขั้นตอนที่ 7

หลังจากวนซ้ำป้อนรหัสบรรทัดต่อไปนี้:

glEnd () GO

ซึ่งจะเป็นการบอก OpenGL ว่าคุณวาดเส้นเสร็จแล้ว

ขั้นตอนที่ 8

ในการวาดวงกลมในฉากให้เพิ่มการเรียกจากเมธอด drawCircle () ไปยังฟังก์ชันการแสดงการเรียกกลับของโปรแกรมซึ่งต้องเตรียมในขั้นตอนที่ 1 ระบุค่าของ x, y, radius และ num_lines โดยที่ x และ y แทนจุด ในฉากของคุณรัศมีคือรัศมีของวงกลมและ num_lines คือจำนวนเส้นที่ประกอบเป็นวงกลม อีกครั้งหากคุณไม่คุ้นเคยกับ OpenGL และหน้าจอโทรกลับโปรดดูบทช่วยสอน OpenGL

ขั้นตอนที่ 9

คอมไพล์และรันโปรแกรมของคุณ หากคุณป้อนฟังก์ชันถูกต้องควรคอมไพล์โดยไม่มีข้อผิดพลาด หากคุณระบุค่าสำหรับ x, y และรัศมีคุณจะเห็นวงกลมสีดำปรากฏบนพื้นหลังสีขาว

คราบสนิมบนอ่างพลาสติกอาจขจัดออกได้ยาก เนื่องจากพลาสติกมีรูพรุนการเกิดออกซิเดชันมักจะอยู่ใต้พื้นผิว และยิ่งทำให้เรื่องแย่ลงน้ำยาขจัดสนิมจำนวนมากในตลาดได้รับการออกแบบมาเพื่อใช้กับโลหะหินและปูนซีเมนต์ เม...

The Lion King ปรากฏตัวครั้งแรกบนจอภาพยนตร์ในปี 1994 นอกจากจะเป็นการตีความบทละครเรื่อง Hamlet ของเชกสเปียร์แล้วภาพยนตร์เรื่องนี้ยังมีเนื้อหาเกี่ยวกับระบบนิเวศที่ชัดเจนอีกด้วย มูฟาซาราชสีห์ในตอนต้นของภา...

บทความที่น่าสนใจ