C++使用 FLTK 填充形状中的颜色不适用于圆圈
C++ fill color in shapes using FLTK doesn't work for circles
我在visual studio 2012编译器上安装了来自FLTK.org的FLTK 1.3.X,并使用PPP书进行C++编程(此)。我的问题是填充一个形状。例如,请遵守以下代码:
#include <Simple_window.h>
using namespace Graph_lib;
int main()
{
Simple_window win(Point(100,100), 1000, 600, "Binary_tree");
Graph_lib::Circle c(Point(200,200),50);
c.set_color(Color::red);
c.set_fill_color(Color::blue);
Graph_lib::Ellipse e(Point(100,100),50,30);
e.set_color(Color::blue);
e.set_fill_color(Color::red);
Graph_lib::Rectangle r(Point(250,200),Point(350,300));
r.set_color(Color::green);
r.set_fill_color(Color::red);
win.attach(r);
win.attach(e);
win.attach(c);
win.wait_for_button();
}
当我运行程序时,所有三个Shapes
都绘制在窗口上,但只有Rectangle
被填充!为什么?set_color
适用于这三个,显然set_fill_color
是为所有Shapes
定义的,它也应该适用,但为什么它不适用于Circle
和Ellipse
?
这是.CPP
和.h
文件()
可能是你在另一个网站上启动了关于这个问题的线程,我在那里找到了解决方案,但为了帮助其他也在处理这个问题的人,我会发这篇文章。在这里,您可以下载正在运行的Stroustrup的库。如果您不想重写所有文件,只需将Graph.cpp中函数"Circle::draw_lines()"中的代码更改为此代码,然后重新编译库:
if (fill_color().visibility()) { // fill
fl_color(fill_color().as_int());
fl_pie(point(0).x,point(0).y,r+r-1,r+r-1,0,360);
fl_color(color().as_int()); // reset color
}
if (color().visibility()) {
fl_color(color().as_int());
fl_arc(point(0).x,point(0).y,r+r,r+r,0,360);
}
相关文章:
- Vec3b:r/g/b 颜色的最大值为 254,而不是 255
- OpenGL/Glew C++纹理不适用
- 标记未定义的颜色,并且颜色匹配系统中不存在样品
- 为什么Visual Studio(2017;15.7.5)不允许我更改c ++关键字颜色
- 我正在尝试更改背景的颜色,但它不起作用
- OpenGL 不渲染颜色
- 如何获得 QColor::greenF 颜色值正好在 0 到 1 之间而不是四舍五入?
- 当我在 windows7 中安装程序时,我指定的字体大小不适用
- accelerator.cu(8): 错误:属性"managed"在这里不适用?
- 为什么像素不改变颜色
- typedef X=<T>T::UserType1,但如果不适用,typedef X<T>=UserType2
- 用C++编写一个程序,对一个简单的序列求和:1/N + 2/N-1 + 3/N-2+ ...不适用
- 读取 TGA 显示空值而不是颜色数据
- OpenGL不呈现颜色
- C++函数系统(命令)的输出在Linux终端中不显示颜色
- SFINAE在这里不适用吗?
- 为什么 clang 在 Scons 下不显示颜色输出?
- 当是复制和交换习语不适用
- SDL_GL_SetAttribute不设置颜色大小
- 在函数实参中使用模板形参不适用gcc4.8