トップページ > 記事閲覧
【C#】DxLib_Init後にChart関連の小数点数が・
名前:りょう 日時: 2015/01/15 13:25

お世話になっております。 C#用パッケージ(3.13d)を使用させて頂いております。 題名の件ですが、DXライブラリの初期化関数となりますDxLib_Init()の処理後に、MsChartコントロールのX軸およびY軸の数値が変化してしまいます。 たとえば、Y軸のラベルが0、0.2、0.4、0.6・・・のような間隔で設定されている場合に、DxLib_Init()が走ると、0、0.21168146184、0.464886484、0.64848486・・・といった感じで、桁数が増えてしまいます。 場合によっては、Chartコントロール自体が落ちてしまうこともあります。 現状は、軸ラベルにLabelStyle.Formプロパティへ”0.##”のように桁数を明示的に指定することで回避はできています。 もしもDXライブラリ側で可能でありましたら、ご対応お願いできますでしょうか。 お忙しいところお手数とは存じますが、よろしくお願いいたします。 使用環境:Windows7 日本語 64ビット、VisualStudio2012Pro(Update4)
メンテ

Page: 1 |

Re: 【C#】DxLib_Init後にChart関連の小数点数が・ ( No.1 )
名前:りょう 日時:2015/01/15 16:39

症状補足です。 本症状はあくまで同一アプリケーション(タスク)内でのみ発生します。 たとえば、AというタスクでChartコントロールを使用中、BというタスクでDxLib_Init()を実行しても症状は発生しません。 さきほどから、DXライブラリのソースコードを覗いていますが、難しいですね;
メンテ
Re: 【C#】DxLib_Init後にChart関連の小数点数が・ ( No.2 )
名前:管理人 日時:2015/01/16 00:29

恐らく Direct3D 9 の仕様である「高速化の為に浮動小数点数の精度を下げる」設定が原因だと思います DxLib_Init を呼ぶ前の箇所に SetUseFPUPreserveFlag( TRUE ) ; という記述を増やして起動してみてください、精度が落ちなくなるので、症状が発生しなくなると思います
メンテ
Re: 【C#】DxLib_Init後にChart関連の小数点数が・ ( No.3 )
名前:りょう 日時:2015/01/19 13:05

管理人様 この度はご報告が遅くなり申し訳ありません。 SetUseFPUPreserveFlag( TRUE ) ; 追記にて症状改善されることが確認できました。 最初は何事かと思いましたが、原因はDirectXの仕様にあったのですね。 今回、表面化することで知ることができ、また早めに改善しておくことができで良かったと思っています。 どうもありがとうございました。 本件、これにてクローズとさせて頂きます。
メンテ

Page: 1 |

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

   クッキー保存