0
#include <iostream>
#include <cmath>
#include "graph1.h"

using namespace std;

int main()
{
    int diameter = 0;
    int height = 0;
    double rate = 0;
    char repeat = 'y';
    int obj_num = 0;

    displayGraphics();

    obj_num = drawRect(0,0,50,400);
    setColor(obj_num,200,200,200);

    obj_num = drawRect(0,400,640,79);
    setColor(obj_num,71,35,35);

    obj_num = drawLine(50,50,150,50,5);
    setColor(obj_num,80,80,80);

    displayBMP("faucet.bmp",150,12);

    do
    {
        do
        {
            cout << "Enter the diamater of the cylinder <in inches > 0 but <= 300: ";
            cin >> diameter;
        if((diameter<0) || (diameter>300))
        { 
            cout << "Incorrect diamater entered; value must be between 1 and 300" << endl;

        }
        }while((diameter<0) || (diameter>300));

        do
        {
            cout << "Enter the height of the cylinder <in inches > 0 but <= 325: ";
            cin >> height;
        if((height<0) || (height>325))
        {
            cout << "Incorrect height entered; value must be between 1 and 325" << endl;
        }

        }while((height<0) || (height>325));

        do
        {
            cout << "Enter the facet water's rate: <gallons/minute> ";
            cin >> rate;
        if((rate<0) || (rate>100))
        { 
            cout << "Incorrect rate entered; value must be between 1 and 100" << endl;

        }
        }while((rate<0) || (rate>100));


//I need to draw the lines here. The graphics window has a faucet that is supposed to fill 
//up a cylinder made out of 3 lines. I don't know how to make the lines vary from the users 
//input since lines are hard coded with points and all i am receiving is the width for the 
//bottom line and the height for the left and right lines. 

      cout << "Repeat program? (y/n): ";
      cin >> repeat;

      clearGraphics();

    }while ( (repeat == 'y') || (repeat == 'Y') );
    return 0;
}

参照用のスクリーンショットを次に示します。 スクリーンショット

4

2 に答える 2

2

太い線を描く方法は、グラフィック ライブラリが提供するものに大きく依存します。この特定の質問の場合、講師から提供されたライブラリを使用しているように見えるため、その特定のヘルプはスタック オーバーフローではまばらになります。インストラクターに尋ねるか、コース教材に付属のドキュメントを確認してください。

割り当ての蛇口パイプの位置とそれを描画するために使用されたコマンドに基づいて、の最後のパラメーターdrawLineは幅のように見えます:

obj_num = drawLine(50,50,150,50,5);

より太い線を描画するライブラリ提供の方法がない場合は、いつでも力ずくの方法を使用して、単純に複数の隣接する線を描画できます。あなたの課題では、円柱の壁を 4 ピクセルの厚さで描画することになっているので、4 本の線を描画します。それぞれの線のx座標は、前のものよりも 1 つ大きくなります。

太い線を描くもう 1 つの方法は、必要な太さの長方形を代わりに描くことです。幅が 4 ピクセルの四角形を定義し、それを描画します。

于 2012-10-08T21:02:08.170 に答える
0

したがって、 ドローライン関数を呼び出すときに高さが可変になり、この変数をプラグインします。

于 2012-10-08T20:59:15.140 に答える