質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

0回答

700閲覧

Visual StudioでC++を使い描画した画面を条件により画面を変えていくようなシステムについて

keigo1998

総合スコア0

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2020/10/24 06:32

編集2020/10/24 08:03

<前提・実現したいこと>
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(); } }

}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2020/10/24 07:25

その実装中のコードを提示しましょう
keigo1998

2020/10/24 08:04

コードを提示しました。 ほとんど知識がない中で行ってます。 どんな些細なアドバイスでもよろしくお願いします。
yumetodo

2020/10/24 08:32

そもそもなんでOpenCVなんかでGUI作ってるんですかね。おとなしくWPFとかそういうので作るべきだと思うんですが
dodox86

2020/10/24 09:42

「どんな些細なアドバイスでも」というのであれば、まずはC言語、OpenCVを使うのであれば先にC++の基本をひととおり修めるべきでは。。。という気がします。質問者さんにとって、どういう事情で作られているのでしょう。説明の言いまわしからするとプログラミングが本職ではないように思えるのですが。何か、例えば小学校の先生とか授業で使うようなものを作らざるを得なくなったような状況なのでしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問