2017-02-19 10 views
0

SFMLライブラリとVisual C++を使用して棒グラフを作成しています。私は棒グラフの開始点を設定したいので、moveとsetOrigin関数を使用しようとしますが、成功することはできません。このため異なるアプローチの棒グラフの始点を設定する方法

sf::RectangleShape rec1(sf::Vector2f(stage1x*1000, stage1y*1000)); 
sf::RectangleShape rec2(sf::Vector2f(stage2x*1000, stage2y*1000)); 
sf::RectangleShape rec3(sf::Vector2f(stage3x*1000, stage3y*1000)); 

rec1.setOrigin(0, 0); 
rec2.setOrigin(0, 0); 
rec3.setOrigin(0, 0); 

rec1.move(200, 700); // This moves the Rectangle over 200 pixels and down 700 pixels 
rec2.move(300, 700); // This moves the Rectangle over 300 pixels and down 700 pixels 
rec3.move(400, 700); // This moves the Rectangle over 400 pixels and down 700 pixels 

rec1.setFillColor(sf::Color(100, 250, 50)); 
rec2.setFillColor(sf::Color(10, 20, 100)); 
rec3.setFillColor(sf::Color(500, 600, 700)); 

This is a picture of my bar chart

答えて

1

たくさん。たとえば、ウィンドウの高さを負の値に設定すると、基本的にはすべてを垂直に反転します(下から上への座標)。

setOrigin() SFMLのドロアブル上では、どの地点がsetPosition()̀で与えられた位置に揃っているかを特定するだけで、地元の原点を移動するだけです。デフォルトでは、原点は(0, 0)に設定されているため、コードは変更されません。

move()を使用するのではなく、setPosition()を直接呼び出します(相対位置ではなく絶対位置を設定しています)。バーを上に移動するには、上記のようにビューを反転するか、Yの位置からバーの高さを減算するだけです。

関連する問題