drawlineの一部が消える

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

drawlineの一部が消える

#1

投稿記事 by 具ロック » 12年前

下記のように新たなスクリーンにDrawLineで線を書いて回転させたり移動させたりするプログラムを作りました。しかし回転も移動もしない場合など時々一部の線が表示されないときがあります。これを解決するにはどうしたらよいでしょうか。

コード:


#include "DxLib.h"
#include <stdio.h>
void Make();

int Handle;
int dx = 400, dy = 350;
int gx = 130, gy = 737;

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
	SetGraphMode(dx, dy, 32);
	SetOutApplicationLogValidFlag(FALSE);
	ChangeWindowMode(TRUE);
	if (DxLib_Init() < 0) return -1;
	Make();
	SetDrawScreen(DX_SCREEN_BACK);

	while (!ProcessMessage())
	{
		ClearDrawScreen();

		DrawRotaGraph2(dx / 2, dy / 2, gx / 2, gy / 2, 0.9, 0, Handle, TRUE, FALSE);
		//DrawRotaGraph2(dx/2, dy/2, gx/2, gy/2+1, 0.9, 0, Handle, TRUE, FALSE);
		//DrawRotaGraph2(dx/2, dy/2, gx/2, gy/2, 0.9, 1, Handle, TRUE, FALSE);

		ScreenFlip();

	}

	DxLib_End();
	return 0;
}

void Make(){
	int i;
	Handle = MakeScreen(gx, gy, 1);
	SetDrawScreen(Handle);

	for (i = 0; i < 30; i++){
		if (i % 2){
			DrawLine(gx / 2 - 62, i * 15 + 8, gx / 2 + 62, i * 15 + 8, -1);
		}
		else{
			DrawLine(gx / 2 - 32, i * 15 + 8, gx / 2 + 32, i * 15 + 8, -1);
		}

	}
}


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

Re: drawlineの一部が消える

#2

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

サンプルの関係で、たまたま線が描画されていないのかもしれません。
期待する表示になるかはわかりませんが、

コード:

SetDrawMode(DX_DRAWMODE_BILINEAR);
でバイリニア法を使用するモードにしてみてください。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: drawlineの一部が消える

#3

投稿記事 by softya(ソフト屋) » 12年前

縮小時に見えなくなっているで、バイリニア法である程度は防げますが厳密には無理です。
SetDrawMode(DX_DRAWMODE_BILINEAR);
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

具ロック

Re: drawlineの一部が消える

#4

投稿記事 by 具ロック » 12年前

ありがとうございます。
縮小は最初からやることにして解決することにしました・
ありがとうございましや

閉鎖

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