<前提・実現したいこと>
Visual StudioでC++を使い描画した画面を条件により変えていくようなシステムを作っています。
表示したい画面の描画が終わり、条件により描画画面の表示を切り替えていく機能を実装中に行き詰まってしました。
発生している問題・エラーメッセージ
voidを使い画面を10個ほど描画し、その後、ifやwhileなどで入力した文字に伴って画面を切り替えをするプログラミングを作成時にどのようなプログラムを作成すればよいでしょうか?
// 文字の定義
int x = 0;
int y = 0;
int DateY;
int DateX;
int date = 0;
int iDate;
// 画面の定義
void main();
void agyo();
void kagyo();
void sagyo();
void tagyo();
void nagyo();
void hagyo();
void magyo();
void yagyo();
void ragyo();
void wagyo();
void dakuten();
// 色の設定
Scalar red(0, 0, 255), green(0, 255, 0), blue(255, 0, 0); // 赤、緑、青
Scalar gray = Scalar(128, 128, 128); // グレー
Scalar dgray = gray / 4; // ダークグレー
Scalar white = Scalar::all(255); // 白
Scalar black = Scalar::all(0); // 黒
Mat img(Size(1364, 703), CV_8UC3, white); // 描画領域(画像)
void main()
{
rectangle(img, Point(142, 27), Point(1114, 135), black); // 文字列入力長方形描画
rectangle(img, Point(1114, 27), Point(1222, 135), black); // 消去選択長方形描画
circle(img, Point(115, 351), 54, black); // はい選択円描画 circle(img, Point(115, 513), 54, black); // いいえ選択円描画 circle(img, Point(358, 270), 54, black); // あ行円描画 circle(img, Point(574, 270), 54, black); // か行円描画 circle(img, Point(790, 270), 54, black); // さ行円描画 circle(img, Point(1006, 270), 54, black); // た行円描画 circle(img, Point(358, 432), 54, black); // な行円描画 circle(img, Point(574, 432), 54, black); // は行円描画 circle(img, Point(790, 432), 54, black); // ま行円描画 circle(img, Point(1006, 432), 54, black); // や行円描画 circle(img, Point(358, 594), 54, black); // ら行円描画 circle(img, Point(574, 594), 54, black); // わ行円描画 circle(img, Point(790, 594), 54, black); // 濁点円描画 circle(img, Point(1006, 594), 54, black); // 小文字円描画 circle(img, Point(1222, 270), 54, black); // 1字消円描画 circle(img, Point(1222, 432), 54, black); // 発音円描画 circle(img, Point(1222, 594), 54, black); // 50音円描画 putText_Jpn(img, "×", Point(1108, 104), "MSゴシック", 2.5, black); // ×描画 putText_Jpn(img, "はい", Point(70, 361), "MSゴシック", 1, red); // はい描画 putText_Jpn(img, "いいえ", Point(68, 523), "MSゴシック", 0.7, blue); // いいえ描画 putText_Jpn(img, "あ", Point(318, 285), "MSゴシック", 2, black); // あ描画 putText_Jpn(img, "か", Point(532, 285), "MSゴシック", 2, black); // か描画 putText_Jpn(img, "さ", Point(753, 288), "MSゴシック", 2, black); // さ描画 putText_Jpn(img, "た", Point(960, 285), "MSゴシック", 2, black); // た描画 putText_Jpn(img, "な", Point(313, 448), "MSゴシック", 2, black); // な描画 putText_Jpn(img, "は", Point(526, 447), "MSゴシック", 2, black); // は描画 putText_Jpn(img, "ま", Point(746, 448), "MSゴシック", 2, black); // ま描画 putText_Jpn(img, "や", Point(956, 449), "MSゴシック", 2, black); // や描画 putText_Jpn(img, "ら", Point(323, 612), "MSゴシック", 2, black); // ら描画 putText_Jpn(img, "わ", Point(530, 612), "MSゴシック", 2, black); // わ描画 putText_Jpn(img, "゛゜", Point(750, 626), "MSゴシック", 2, black); // 濁点描画 putText_Jpn(img, "小", Point(976, 604), "MSゴシック", 1.25, black); // 小文字描画 putText_Jpn(img, "1字消", Point(1172, 277), "MSゴシック", 0.75, black); // 1字消描画 putText_Jpn(img, "発音", Point(1180, 439), "MSゴシック", 0.9, black); // 発音描画 putText_Jpn(img, "50音", Point(1180, 601), "MSゴシック", 0.9, black); // 50音描画 imshow("グラフィック描画", img); waitKey();
}
void agyo()
{
// あ行選択画面
circle(img, Point(142, 270), 54, black); // あ円描画
circle(img, Point(142, 54), 54, black); // い円描画
circle(img, Point(358, 54), 54, black); // う円描画
circle(img, Point(574, 54), 54, black); // え円描画
circle(img, Point(574, 270), 54, black); // お円描画
circle(img, Point(1222, 594), 54, black); // 50音円描画
putText_Jpn(img, "あ", Point(102, 285), "MSゴシック", 2, black); // あ描画 putText_Jpn(img, "い", Point(97, 74), "MSゴシック", 2, black); // い描画 putText_Jpn(img, "う", Point(333, 69), "MSゴシック", 2, black); // う描画 putText_Jpn(img, "え", Point(529, 69), "MSゴシック", 2, black); // え描画 putText_Jpn(img, "お", Point(527, 285), "MSゴシック", 2, black); // お描画 putText_Jpn(img, "50音", Point(1180, 601), "MSゴシック", 0.9, black); // 50音描画 imshow("グラフィック描画", img); waitKey();
}
void kagyo()
{
// か行選択画面
circle(img, Point(358, 270), 54, black); // か円描画
circle(img, Point(358, 54), 54, black); // き円描画
circle(img, Point(574, 54), 54, black); // く円描画
circle(img, Point(790, 54), 54, black); // け円描画
circle(img, Point(790, 270), 54, black); // こ円描画
circle(img, Point(1222, 594), 54, black); // 50音円描画
putText_Jpn(img, "か", Point(316, 285), "MSゴシック", 2, black); // か描画 putText_Jpn(img, "き", Point(321, 70), "MSゴシック", 2, black); // き描画 putText_Jpn(img, "く", Point(539, 69), "MSゴシック", 2, black); // く描画 putText_Jpn(img, "け", Point(747, 72), "MSゴシック", 2, black); // け描画 putText_Jpn(img, "こ", Point(753, 285), "MSゴシック", 2, black); // こ描画 putText_Jpn(img, "50音", Point(1180, 601), "MSゴシック", 0.9, black); // 50音描画 imshow("グラフィック描画", img); waitKey();
}
void sagyo()
{
// さ行選択画面
circle(img, Point(574, 270), 54, black); // さ円描画
circle(img, Point(574, 54), 54, black); // し円描画
circle(img, Point(790, 54), 54, black); // す円描画
circle(img, Point(1006, 54), 54, black); // せ円描画
circle(img, Point(1006, 270), 54, black); // そ円描画
circle(img, Point(1222, 594), 54, black); // 50音円描画
putText_Jpn(img, "さ", Point(537, 288), "MSゴシック", 2, black); // さ描画 putText_Jpn(img, "し", Point(540, 73), "MSゴシック", 2, black); // し描画 putText_Jpn(img, "す", Point(741, 71), "MSゴシック", 2, black); // す描画 putText_Jpn(img, "せ", Point(956, 71), "MSゴシック", 2, black); // せ描画 putText_Jpn(img, "そ", Point(961, 286), "MSゴシック", 2, black); // そ描画 putText_Jpn(img, "50音", Point(1180, 601), "MSゴシック", 0.9, black); // 50音描画 imshow("グラフィック描画", img); waitKey();
}
void clearwhite(void)
{
rectangle(img, Point(0, 0), Point(DISPLAY_SIZE_X, DISPLAY_SIZE_Y), white, -1, LINE_AA);
imshow("グラフィック描画", img);
waitKey(1);
}
void nyuuryoku(void)
{
main();
while (1)
{
cout << "xを入力, \n";
cin >> x;
if (x == 1) { clearwhite(); agyo(); imshow("グラフィック描画", img); waitKey(); } }
}
あなたの回答
tips
プレビュー