アナログデータのリアルタイム描画

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Math

Re: アナログデータのリアルタイム描画

#31

投稿記事 by Math » 6ヶ月前

いまは、そういうレベルの話ではありません(^^;

アバター
usao
記事: 1547
登録日時: 6年前

Re: アナログデータのリアルタイム描画

#32

投稿記事 by usao » 6ヶ月前

オフトピック
offtopicにしてる話なので,今の話の流れに無関係であれば気兼ねなく黙認してくださいな.

要は,
何らかのレンダリング処理を自前で書いたとして
そのレンダリング処理に要する計算やらデータアクセス処理やらの実装自体が重い場合,
DirectXだの何だのを持ってこようが,肝心のボトルネック部分が改善されるわけじゃないんだから意味ねぇよな,っていう.

Math

Re: アナログデータのリアルタイム描画

#33

投稿記事 by Math » 6ヶ月前

速習法について

#29の
>なを
>viewtopic.php?f=3&t=20479
>の
>#5~#8 
>も参考にしてください

の方法なら1日で https://dixq.net/g/ の例がテストできるはず(^^;

またコマンドプロンプトでビルドをやれば VS2017のIDEを立ち上げず ビルド&RUNができる。
(いま時間がないので後日…)

あと(3.14章 特定のFPSで動作させる方法があります) 

Math

Re: アナログデータのリアルタイム描画

#34

投稿記事 by Math » 6ヶ月前

ここは元々 DXライブラリーでゲームを作っていた管理人さんの ページから派生しているのです
(***https://dixq.net/g/ ここのしたから飛んでくる)


https://dxlib.xsrv.jp/cgi/patiobbs/patio.cgi?


に元祖 DXライブラリーを開発・管理されている方の掲示板があります
かなり専門的な質問に丁寧に答えてくださいます。

いまは アンドロイド対応版 もありますよ。

https://dxlib.xsrv.jp/dxinfo.html


DXライブラリの主な特徴を以下に記します。

 1.Windowsプログラム( Android版の場合は Androidアプリプログラム )だと意識しなくて済む
 2.ライブラリの色が薄い
 3.ライブラリのソースコードを公開

 まず1の『Windowsプログラム( Android版の場合は Androidアプリプログラム )だと意識しなくて済む』ですが、 これは大抵の同種のライブラリでも同じだと思います。『メッセージループ』だとか、 WindowsAPI云々などとは99%無縁の環境でゲームプログラムが出来ます。 ( Android版の場合も同じく、Androidアプリ特有の『アクティビティ( Activity )』や『ビュー( View )』といったものを意識せずにプログラムを組むことができます。 )

 次に2の『ライブラリの色が薄い』ですが、これは何を意味するかと いいますと… いわゆるライブラリ独自の『規則』や『法則』が少ないと いうことです。つまり、このライブラリでつちかったゲームプログラム技法は 他の開発環境に移っても通用しますし、逆を言えば他の環境で養ってきたプログラム技法も このライブラリで通用する率が高いということです。
 これは重要なことで、逆に独自性が高いライブラリですと他の開発環境に移ったときに 今まで築いてきた知識が全く役に立たなかったり、そのライブラリを使おうとしたときに多くの 知識と技能を再構築しなくてはならなくなるという事態に陥ります。

 3の『ライブラリのソースコードを公開』 は、今では特徴というほどでもありませんが… 見ようと思えばライブラリ内部で何が行われているか確認することができます。

ーーーーーーーーーーーーーーーーーーーーーーーーーー
と安心して使えます

https://ja.wikipedia.org/wiki/DX%E3%83% ... 9%E3%83%AA

にあるように
DirectX 11に対応している

Math

Re: アナログデータのリアルタイム描画

#35

投稿記事 by Math » 6ヶ月前

[参考]
必要があって

DXライブラリーを使ったプログラムをTEXTファイル形式で行えるように設定してみました。

ゲームコード.txt(  試験用コード )

コード:

#include "DxLib.h"
#include "Math.h"

// プログラムは WinMain から始まります
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int)
{
	int x,y;
	double PI = 3.14159265358979;		// 産医師異国に向こう産後厄なく産・
	ChangeWindowMode( TRUE );		// ウィンドウモードに設定
	if( DxLib_Init() == -1 )		// DXライブラリ初期化処理
	{
		return -1 ;			// エラーが起きたら直ちに終了
	}

	for(x = 0; x < 640; x++) DrawPixel( x , 240 , GetColor( 0,0,255 ) ) ; // 点を打つ
	for(y = 0; y < 480; y++) DrawPixel( 320 , y , GetColor( 0,255,0 ) ) ; // 点を打つ

	for(x = 0; x < 640; x++) DrawPixel( x , 220*sin((float)x*(2.0*PI/320.0))+240 , GetColor( 0,255,255 ) ) ;

	WaitKey() ;				// キー入力待ち

	DxLib_End() ;				// DXライブラリ使用の終了処理

	return 0 ;				// ソフトの終了 
}

実験・成功
http://www2.koyoen.birdview.co.jp/~abcx ... -02-c-.PNG

下記の #10 です
viewtopic.php?f=3&t=20540

Math

Re: アナログデータのリアルタイム描画

#36

投稿記事 by Math » 6ヶ月前

[Windows アプリケーションから Consoleを デバッグ用などに生成する]

DXライブラリーのプログラムをコンソール・アプリケーションとして作成する方法を記したが
逆に Windows アプリケーションから Consoleを デバッグ用などに生成する方法を記す。

コード:

#include "DxLib.h"
#include "Math.h"

// プログラムは WinMain から始まります
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int)
{
	AllocConsole();
	FILE* out = 0; freopen_s( &out, "CON", "w", stdout );
	FILE* in = 0; freopen_s( &in, "CON", "r", stdin );


	printf("Hello World!\n");

	printf("%lf\n", 3.141592653589793);


	int x,y;
	double PI = 3.141592653589793;		// 産医師異国に向こう産後厄なく産・
	ChangeWindowMode( TRUE );		// ウィンドウモードに設定
	if( DxLib_Init() == -1 )		// DXライブラリ初期化処理
	{
		return -1 ;			// エラーが起きたら直ちに終了
	}

	for(x = 0; x < 640; x++) DrawPixel( x , 240 , GetColor( 0,0,255 ) ) ; // 点を打つ
	for(y = 0; y < 480; y++) DrawPixel( 320 , y , GetColor( 0,255,0 ) ) ; // 点を打つ

	printf("正弦波・・・\n");

	for(x = 0; x < 640; x++) DrawPixel( x , 220*sin((float)x*(2.0*PI/320.0))+240 , GetColor( 0,255,255 ) ) ;

	WaitKey() ;				// キー入力待ち

	DxLib_End() ;				// DXライブラリ使用の終了処理


	//コンソール解放
	fclose( out ); fclose( in ); FreeConsole();



	return 0 ;				// ソフトの終了 
}
実行する。
http://www2.koyoen.birdview.co.jp/~abcx ... -05-c-.PNG

Math

Re: アナログデータのリアルタイム描画

#37

投稿記事 by Math » 6ヶ月前

[ 分割コンパイル ]

g.mak

コード:

TARGETNAME=ゲームコード

C_FLAGS=/c /TP /EHsc /D "_MBCS" /MT  /Ic:\dxlib /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /W3 

LINK_FLAGS=/SUBSYSTEM:WINDOWS /LIBPATH:c:\dxlib "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" 

ALL:
	cl $(C_FLAGS) $(TARGETNAME).txt sub_02.txt
	link /out:$(TARGETNAME).exe $(LINK_FLAGS) $(TARGETNAME).obj sub_02.obj 
	$(TARGETNAME).exe
ゲームコード.txt

コード:

#include "DxLib.h"
#include "Math.h"

void sub_02( void );

// プログラムは WinMain から始まります
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int)
{
	AllocConsole();
	FILE* out = 0; freopen_s( &out, "CON", "w", stdout );
	FILE* in = 0; freopen_s( &in, "CON", "r", stdin );


	printf("Hello World!\n");

	printf("%16.15f\n", 3.141592653589793);

	int x, y;

	ChangeWindowMode( TRUE );		// ウィンドウモードに設定
	if( DxLib_Init() == -1 )		// DXライブラリ初期化処理
	{
		return -1 ;			// エラーが起きたら直ちに終了
	}

	for(x = 0; x < 640; x++) DrawPixel( x , 240 , GetColor( 0,0,255 ) ) ; // 点を打つ
	for(y = 0; y < 480; y++) DrawPixel( 320 , y , GetColor( 0,255,0 ) ) ; // 点を打つ


	sub_02();


	WaitKey() ;				// キー入力待ち

	DxLib_End() ;				// DXライブラリ使用の終了処理


	//コンソール解放
	fclose( out ); fclose( in ); FreeConsole();



	return 0 ;				// ソフトの終了 
}

sub_02.txt

コード:

#include "DxLib.h"
#include "Math.h"

void sub_02( void )
{
	double PI = 3.141592653589793;		// 産医師異国に向こう産後厄なく産・

	printf("正弦波・・・\n");

	for(int x = 0; x < 640; x++) DrawPixel( x , 220*sin((float)x*(2.0*PI/320.0))+240 , GetColor( 0,255,255 ) ) ;

	printf("余弦波・・・\n");

	for(int x = 0; x < 640; x++) DrawPixel( x , 220*cos((float)x*(2.0*PI/320.0))+240 , GetColor( 0,255,255 ) ) ;
}
実行する。
http://www2.koyoen.birdview.co.jp/~abcx ... -07-a-.PNG

Math

Re: アナログデータのリアルタイム描画

#38

投稿記事 by Math » 6ヶ月前

[ OpenCV4 ]

msys2にて clang(クラン)ake、にて openCV4 を 導入したのですが

OpenGL, DXライブラリー と共に選択肢に入るとおもいますね。

viewtopic.php?f=3&t=20501#p152413



OpenCV 4.0.1をVisual Studio 2017から使用する時の手順

https://qiita.com/h-adachi/items/aad3401b8900438b2acd

Math

Re: アナログデータのリアルタイム描画

#39

投稿記事 by Math » 6ヶ月前

C++Builder の話
 
Cpadの作者の話viewtopic.php?f=3&t=20551

「情報系の友人がC++Builderを持っているのですが、C++の入門書や、大学の授業では、コンソールプログラムがほとんどで、BCBはコンソールアプリ作成には使いにくい!と文句を言っていたのです。
BCBは優れた開発ツール(Windowアプリを作るのにはDelphiと並んで最強!)ですが、単純なコンソールプログラムの作成には正直向いていません。
当時CPadはLSI C-86にしか対応してなかったのですが、LSIC86は、基本的にDOS16ビットコンパイラであり、intが16ビットである、C++に対応してない、など今となっては仕様の古さは否めませんでした。(注:もちろん今でも、純粋なフリーのCコンパイラとして貴重な存在であると思います。)

すると、選択肢は、MicrosoftのVisual C++しかなくなってしまいます(他にもありますがメジャーなもの、ということで)。僕はDelphiを使っていたため、Inprise/Borland製品の質の高さを知っていたので、学習用途、コンソールアプリ作成のためだけにVCを買うのはもったいない、CPadをBCBと組み合わせてそういう時に使えるツールにしよう、と思っていたのです。BCBのコンソールアプリに弱い、という弱点を克服できれば、BCBユーザーも増えるし、いいことだらけだ!と。」

C++BuilderはC++で唯一のRAD だけど少し違和感があったのがこれですね。

返信

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