トップページ > 記事閲覧
DrawLineAA関数で線の長さが2以下だと表示されない
名前:オリネ 日時: 2017/11/06 01:52

初めまして、この前DXライブラリを入れて、扱いやすさに衝撃を受けております。 さて、本題ですがDrawLineAA関数を用いてコッホ曲線を描いていたのですが、直線の長さが2pxを下回ると描画されないみたいなのですが、それは仕様なのでしょうか。 仕様なのであれば、2px以下の線を描画する方法はあるのでしょうか。
メンテ

Page: 1 |

Re: DrawLineAA関数で線の長さが2以下だと表示されない ( No.1 )
名前:管理人 日時:2017/11/08 00:58

> 初めまして、この前DXライブラリを入れて、扱いやすさに衝撃を受けております。 私もDXライブラリの元となったライブラリに触れて同じ衝撃を受け、 沢山の方に同じ気持ちを味わっていただきたいと思って元ライブラリの作者様に許可を得た上で 構造を似せたライブラリ( DXライブラリ )を作成したので、『扱いやすくて衝撃を受けた』というご感想は嬉しい限りです (^ ^ > さて、本題ですがDrawLineAA関数を用いてコッホ曲線を描いていたのですが、直線の長さが2pxを下回ると描画されないみたいなのですが、それは仕様なのでしょうか。 > 仕様なのであれば、2px以下の線を描画する方法はあるのでしょうか。 すみません、仕様ではなくバグです orz 修正版をアップしましたので、よろしければお試しください m(_ _;m http://dxlib.o.oo7.jp/temp/DxLibVCTest.exe // Windows版 VisualC++ 用 http://dxlib.o.oo7.jp/temp/DxLibBCCTest.exe // Windows版 BorlandC++ 用 http://dxlib.o.oo7.jp/temp/DxLibBCC2Test.exe // Windows版 C++ Builder 10.1 Berlin 用 http://dxlib.o.oo7.jp/temp/DxLibGCC_MinGWTest.exe // Windows版 MinGW 用 http://dxlib.o.oo7.jp/temp/DxLibDotNet.zip // Windows版 .NET用 http://dxlib.o.oo7.jp/temp/DxLibAndroidTest_ARM.exe // Android版 ARM用 http://dxlib.o.oo7.jp/temp/DxLibAndroidTest_x86.exe // Android版 x86用 http://dxlib.o.oo7.jp/temp/DxLibMakeTest.exe // ソース
メンテ
Re: DrawLineAA関数で線の長さが2以下だと表示されない ( No.2 )
名前:オリネ 日時:2017/11/22 01:22

返信ありがとうございます。 修正をしていってよりいいものが出来上がって行くのですね...! DLさせて頂きますm(_ _)m
メンテ
Re: DrawLineAA関数で線の長さが2以下だと表示されない ( No.3 )
名前:オリネ 日時:2017/11/22 01:42

すみません、DLしてライブラリを置き換えたのですが、まだ描画されないです。
メンテ
Re: DrawLineAA関数で線の長さが2以下だと表示されない ( No.4 )
名前:管理人 日時:2017/11/24 00:39

描画されませんでしたか… 以下のようなテスト用のプログラムで長さ 1px の線を描画して動作を確認したのですが、 手元の環境では画面左上に 1px の白い点( 1px なので点 )が表示されました #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { // ウインドウモードで起動 ChangeWindowMode( TRUE ) ; // DXライブラリの初期化 if( DxLib_Init() < 0 ) return -1 ; // 描画先を裏画面にする SetDrawScreen( DX_SCREEN_BACK ) ; // メインループ while( ProcessMessage() == 0 ) { // 画面のクリア ClearDrawScreen() ; // 長さ1の線を描画 DrawLineAA( 2.0f, 3.0f, 3.0f, 3.0f, GetColor( 255,255,255 ) ) ; // 裏画面の内容を表画面に反映 ScreenFlip() ; } // DXライブラリの後始末 DxLib_End() ; // ソフトの終了 return 0 ; } よろしければオリネさんの環境でも上記のプログラムであれば 1px の線が描画されるかを 試していただけないでしょうか? m(_ _;m
メンテ
Re: DrawLineAA関数で線の長さが2以下だと表示されない ( No.5 )
名前:オリネ 日時:2017/11/24 16:30

サンプルテストを動かしてみましたが、描画されませんでした。
メンテ
Re: DrawLineAA関数で線の長さが2以下だと表示されない ( No.6 )
名前:管理人 日時:2017/11/25 23:28

描画されませんでしたか… オリネさんの環境で描画されない原因かは分かりませんが、その後、線の角度によっては 指定した座標からずれた位置に描画されてしまうバグを発見し、修正しました このバグを修正したバージョンでは正常に描画されるかもしれませんので、お手数で申し訳ありませんが よろしければこちらの修正版をお試しになってみてください m(_ _;m http://dxlib.o.oo7.jp/temp/DxLibVCTest.exe // Windows版 VisualC++ 用 http://dxlib.o.oo7.jp/temp/DxLibBCCTest.exe // Windows版 BorlandC++ 用 http://dxlib.o.oo7.jp/temp/DxLibBCC2Test.exe // Windows版 C++ Builder 10.1 Berlin 用 http://dxlib.o.oo7.jp/temp/DxLibGCC_MinGWTest.exe // Windows版 MinGW 用 http://dxlib.o.oo7.jp/temp/DxLibDotNet.zip // Windows版 .NET用 http://dxlib.o.oo7.jp/temp/DxLibAndroidTest_ARM.exe // Android版 ARM用 http://dxlib.o.oo7.jp/temp/DxLibAndroidTest_x86.exe // Android版 x86用 http://dxlib.o.oo7.jp/temp/DxLibMakeTest.exe // ソース ( 中身を既存のライブラリのファイルに上書きして、VisualStudioをお使いの場合は『リビルド』を、  BCCをお使いの場合は『再構築』をして下さい ) あと、テスト用に私の環境で長さ 1, 2, 3, 4 の線を DrawLineAA で描画する以下のプログラム #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { int TempScreen ; // ウインドウモードで起動 ChangeWindowMode( TRUE ) ; // 画面サイズを 512x512 に設定 SetGraphMode( 512, 512, 32 ) ; // DXライブラリの初期化 if( DxLib_Init() < 0 ) return -1 ; // サイズ 16x16 の仮画面を作成 TempScreen = MakeScreen( 16, 16 ) ; // メインループ while( ProcessMessage() == 0 ) { // 描画先を仮画面にする SetDrawScreen( TempScreen ) ; // 画面のクリア ClearDrawScreen() ; // 長さ1, 2, 3, 4 の線を描画 DrawLineAA( 2.0f, 2.0f, 3.0f, 2.0f, GetColor( 255,255,255 ) ) ; DrawLineAA( 2.0f, 4.0f, 4.0f, 4.0f, GetColor( 255,255,255 ) ) ; DrawLineAA( 2.0f, 6.0f, 5.0f, 6.0f, GetColor( 255,255,255 ) ) ; DrawLineAA( 2.0f, 8.0f, 6.0f, 8.0f, GetColor( 255,255,255 ) ) ; // 描画先を裏画面にする SetDrawScreen( DX_SCREEN_BACK ) ; // 画面のクリア ClearDrawScreen() ; // 仮画面の内容を画面全体に描画 DrawExtendGraph( 0, 0, 512, 512, TempScreen, FALSE ) ; // 裏画面の内容を表画面に反映 ScreenFlip() ; } // DXライブラリの後始末 DxLib_End() ; // ソフトの終了 return 0 ; } をビルドした実行ファイルをこちらにアップしました http://dxlib.o.oo7.jp/temp/DrawLineAATest.zip こちらの実行ファイルでも長さ1の線( 一番上の線 )が描画されませんでしたら、 お手数で申し訳ありませんが実行すると作成される Log.txt の内容をこちらの掲示板に 丸ごとコピー&貼り付けをしていただけないでしょうか? m(_ _;m
メンテ
Re: DrawLineAA関数で線の長さが2以下だと表示されない ( No.7 )
名前:オリネ 日時:2017/11/26 23:48

すみません、どうやら修正前のライブラリを適用していたようです(_ _;) ちゃんと修正されたライブラリを適用したところ、ちゃんと描画されました。 お手数おかけして申し訳ありませんでしたm(_ _)m
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存