プロットした円の消去

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
コメパンパスタ
記事: 3
登録日時: 2年前

プロットした円の消去

#1

投稿記事 by コメパンパスタ » 2年前

昨日の質問「水平投射されるボールのアニメーション」の続きです
無事形になってきました。ありがとうございます。

次の円を描くときに、前の円を消去したいです。
(1つのボールが動いているように見せたい、ということです)

Circle(x,y,5,6)の前に
system("cls")を書きいれたのですが、
'system’ undefindというエラーが出ました。

関数なのに定義が必要なのですか?
それとも別の方法をとるべきですか?

ご教授お願いします。

コード:

#include "Graph.h"
#include <stdio.h>
#include <conio.h>
#include <math.h> 

main()
{
	double x,y;
	double vx,vy;
	double t,g;
	double e,h,t1;
	int c,a;
	
	SetGraphicsMode();
	
	ClearScreen(0);
	
	g=9.8;
	t=0.0;
	c=0;
	a=1;
	e = 0.8;
	h = 20;
	t1 = -sqrt(2*h/g);
	
	x=0.0;
	y=20.0;
	
	vx=10.0;
	vy=-sqrt(2*g*h);
	
	
	for(t=0; t<=20; t=t+0.01)
	{
		x = vx * t;
		y = 20 + (vy * (t - t1) + 0.5 * g * (t - t1) * (t - t1)); 
		
		if(y > 20)
		{
			c ++;
			vy = - pow(e, c) * sqrt(2*g*h);
			t1 += 2 * pow(e, c - 1) * sqrt(2*h/g);
			
		}
		
		else
		{
			system("cls");
			Circle(10*x,10*y,5,6);
		}
		
	}
	
	SetCursorPos(0, 0);
	printf("Push Anykey!");
	getch();
	
	RestoreMode();
}


アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: プロットした円の消去

#2

投稿記事 by みけCAT » 2年前

コメパンパスタ さんが書きました:
2年前
Circle(x,y,5,6)の前に
system("cls")を書きいれたのですが、
'system’ undefindというエラーが出ました。

関数なのに定義が必要なのですか?
それとも別の方法をとるべきですか?
使う関数は定義が必要ですね。
定義が無いとその関数を呼んだときに何をすればいいのかわからなくなってしまいます。
「なのに」というのは意味がよくわかりません。
system関数の定義は標準ライブラリにあるはずなので、自分で定義する必要はありません。
今回は宣言が無いのが問題ですね。
system関数の宣言はstdlib.hに含まれるので、コード先頭に

コード:

#include <stdlib.h>
を追加すると改善できるでしょう。

ただし、system("cls")が今回の目的に適しているかはわかりません。
Graph.h に、画面をクリアする関数や長方形を塗りつぶす関数は無いでしょうか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

返信

“C言語何でも質問掲示板” へ戻る