Làm cách nào để vẽ chuỗi văn bản lên màn hình bằng chức năng vẽ GLUT/OpenGL?Làm cách nào để vẽ văn bản bằng GLUT/OpenGL trong C++?
Trả lời
Có hai cách để vẽ chuỗi với thị trường bất động
glutStrokeString sẽ vẽ văn bản trong không gian 3D
alt text http://local.wasp.uwa.edu.au/~pbourke/oldstuff/glut/opengl4.gif
và glutBitmapString sẽ vẽ văn bản phải đối mặt với người dùng
Nói chung hơi khó chịu và không đơn giản. Cung cấp cho công cụ này thử xem:
void RenderString(float x, float y, void *font, const char* string, RGB const& rgb)
{
char *c;
glColor3f(rgb.r, rgb.g, rgb.b);
glRasterPos2f(x, y);
glutBitmapString(font, string);
}
Và bạn có thể gọi nó như;
RenderString(0.0f, 0.0f, GLUT_BITMAP_TIMES_ROMAN_24, "Hello", RGB(1.0f, 0.0f, 0.0f));
lỗi: ‘glutBitmapString’ không được khai báo trong phạm vi này –
lỗi: yêu cầu cho thành viên ‘r’ trong ‘rgb’, thuộc loại không phải là ‘const int’ –
Nếu bạn không thích các built-in phông chữ đột quỵ hoặc phông chữ bitmap mà đi kèm với thị trường bất động theo epatel's answer, bạn sẽ phải cuộn giải pháp của riêng bạn.
NeHe có một số hướng dẫn tốt (cùng với đầy đủ làm việc mẫu mã) về vấn đề này:
- 1. Làm cách nào để vẽ văn bản bằng Libgdx/Java?
- 2. Làm cách nào để sử dụng glutBitmapString() trong C++ để vẽ văn bản lên màn hình?
- 3. Làm cách nào để vẽ văn bản trong chế độ xem tùy chỉnh bằng cách sử dụng Objective-C?
- 4. Làm cách nào để vẽ văn bản trên canvas?
- 5. Làm thế nào để vẽ văn bản với nền trong suốt bằng cách sử dụng c + +/WinAPI?
- 6. Làm thế nào để vẽ văn bản trên picturebox?
- 7. Làm cách nào để ghi đè cài đặt ClearType khi vẽ văn bản bằng API Win32?
- 8. Làm cách nào để vẽ văn bản bằng các màu tô và nét khác nhau?
- 9. Làm cách nào để vẽ văn bản chỉ bằng các phương pháp OpenGL?
- 10. Vẽ văn bản trong canvas
- 11. Rgooglemaps vẽ văn bản
- 12. Làm cách nào để nối văn bản vào một tệp văn bản trong C++?
- 13. Matlab: làm thế nào để vẽ văn bản 3D (không phải là văn bản hàm 2D)
- 14. Làm thế nào để lọc datagridview bằng cách sử dụng một hộp văn bản trong C#?
- 15. Làm cách nào để bạn truy xuất văn bản đã chọn bằng Regex trong C#?
- 16. Vẽ văn bản dọc trong WPF bằng DrawingContext.DrawText()
- 17. Làm cách nào để vẽ bằng QPainter?
- 18. làm thế nào để vẽ văn bản với màu nền bằng vải
- 19. Vẽ văn bản bên trong Arc bằng canvas
- 20. Làm cách nào để tải văn bản này bằng Jsoup?
- 21. Làm cách nào để che phủ văn bản trên văn bản khác bằng CSS?
- 22. Làm cách nào để nối thêm giá trị văn bản vào hộp văn bản bằng jQuery?
- 23. Làm thế nào để vẽ ra màn hình bằng C++?
- 24. Xác minh văn bản bằng DrawString trong C#
- 25. Làm cách nào để thay đổi định dạng văn bản của một ô Excel bằng C#?
- 26. Làm thế nào để tái tạo phong cách văn bản inset khi vẽ văn bản với Mac OS X Cocoa?
- 27. Vẽ văn bản bằng nét ngoài với canvas của HTML5
- 28. Làm thế nào để bạn vẽ văn bản trên một thẻ <canvas> trong Safari
- 29. Vẽ văn bản đa ngôn ngữ bằng PIL
- 30. Vẽ văn bản ở giữa
Xin lưu ý rằng bạn sẽ cần [freeglut] [1], trái ngược với glut, sử dụng glutBitmapString. [1]: http://freeglut.sourceforge.net/ – andrewrk
Tôi biết câu hỏi cũ của nó, tôi có glut.h nó chỉ khi tôi cố gắng sử dụng một trong hai phương pháp nó sẽ nói định danh "glutBitmapString" hoặc " glutStrokeString "là không xác định bất kỳ ý tưởng? – Jonathan
@Jonathan superjoe30 là đúng. glutBitmapString và glutStrokeString không có trong triển khai GLUT gốc. Nhưng, nếu bạn muốn sử dụng GLUT tôi khuyên bạn nên xem xét sử dụng hoặc freeglut hoặc openglut mà cả hai đều có chúng. Nếu tôi nhớ lại chính xác việc triển khai GLUT ban đầu chưa được cập nhật kể từ năm 1998 do sơ đồ cấp phép của nó để freeglut và openglut được bắt đầu giải quyết vấn đề đó và thêm các tính năng mới, v.v. Xem http://freeglut.sourceforge.net/ – epatel