2014-08-28 6 views
2

fltk.org에서 visual studio 2012 컴파일러에 FLTK 1.3.X를 설치하고 C++ 프로그래밍 (this) 용 PPP 북을 사용했습니다. 내 문제는있는 모양 작성에 관한 것입니다 예를 들어,이 코드를 준수하십시오. FLTK를 사용하여 도형의 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이 3 가지로 작동하며 모두 Shapes에 대해 set_fill_color이 정의되어 있고 작동해야하지만 CircleEllipse은 작동하지 않습니다.

This.CPP.h 파일() 아마

+0

어떤이 없습니다 생각!? – zhiar

+0

이것은 fltk와 관련이 없습니다 : fltk 위에 쓰여진 graph_lib와 관련이 있습니다. 어디에서 graph_lib을 얻었고 어느 ​​플랫폼을 실행하고 있습니까? – cup

+0

내 컴퓨터는 Windows 7이고 컴파일러는 M Visual Studio 2012입니다. _FLTK_ 버전 1.3.2를 설치했는데 _Graph_lib_이 그 것으로 생각됩니다. – zhiar

답변

0

, 그것은 내가 해결책을 발견 다른 웹 사이트에서이 문제에 대한 스레드를 시작했지만,이 고투 다른 사람들을 돕기 위해 사람을했다 문제, 나는이 게시물을 만들 것입니다. Here Stroustrup의 라이브러리를 다운로드 할 수 있습니다. 모든 파일을 다시하지 않으려면, 그냥이 하나 Graph.cpp에서 함수의 코드 "원 :: 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); 
}