C&C++

[ リスト | 詳細 ]

C言語の話です。
たまに、ソースなども出そうかなと思っています。
記事検索
検索

全9ページ

[1] [2] [3] [4] [5] [6] [7] [8] [9]

[ 次のページ ]

波がきた

前記事の続き。

sin関数による波。うねってる〜
イメージ 1
3Dの計算方法を変えました。
前より簡単に

描画

3Dむずい。
左手座標系ビュー行列と左手座標系パースペクティブ射影行列について、よく分からんな。
もうちょっと、 Crawl 1-9 座標変換其の四 をよく読むかぁ。

ビューポート行列は、画面に合わせるための行列だってことが分かった。

今のところ、よく分からん行列の生成以外は、自力で算出して描画。
ちなみに、Windows APIにて描画。

描画内容は、sin関数とtan関数、log10( | tan | )関数で囲ったものの3つを試しに描画させたけど、
やっぱ、三角関数とかは、計算するより描画させて見たほうが面白いなー

[sin関数]
イメージ 1

[tan関数]
イメージ 2

[log10( | tan | )関数]
イメージ 3

円周率は

約3.14159265358979と15桁で覚えるべし!
なぜなら、C言語のdouble型が今現在、およそ15桁で表現できるからだ!(ドヤァ

数値計算

コンピュータによる数値計算において厄介なのが、
小数点を利用する計算です。
10進数小数点を2進数変換するとき、
数値の中に誤差が発生してしまいます。

時に、誤差はバグを引き起こすこともあります。

  double dx, dy;
  for( dx = 0.0 ; dx < 1.0 ; dx += 0.01 ){ dy = dx; }

なんてことをして誤差を増やすよりも

  int dx;
  double dy;
  for( dx = 0 ; dx < 100 ; dx++ ){ dy = (double) dx / 100.0; }

のほうが正確に数値計算が可能です。(二度手間だけど…)


とにかく、簡単により正確に数値計算するには、
こういう手間もたまには必要になります。



[誰でも体感できる誤差]
電卓ツールをだし、
1/3を計算し、結果をコピー。
その後、×3にして結果を見る。(この時は、数値が1になる。)
一度クリアにし、結果を張り付け。
その結果×3で計算すると、0.999999…にしかならない。
※コピー、貼り付けは、左上の編集ボタンから開ける。



今回開発していたプログラムにおいて、
このせいでかなり難しいバグが発生してたなぁ…

マルチスレッド

マルチスレッドプログラミングにおいては、
どのようにしてCPUを有効活用するかが問題となります。

実験として、
CreateThread関数を利用し、グローバル変数にアクセスする。
ということをやり、計測してみたいと思います。
スレッド関数内は、グローバル変数を100000000回1加算して計測をします。
シングルスレッドの変数の数を1に対して、
マルチスレッドはスレッド数分の変数の数でアクセスするようにします。

結果、
[1スレッド]…処理時間:00[m]:00[s]:234[ms]
[2スレッド]…処理時間:00[m]:00[s]:141[ms]
[4スレッド]…処理時間:00[m]:00[s]:078[ms]
[8スレッド]…処理時間:00[m]:00[s]:081[ms]

ウチのCPUは、4スレッドまで同時に動作可能なので、
8スレッドにしても、逆に処理が多くなり時間がかかってしまうようです。
よって、CPUの種類毎にスレッド数を決める必要があるようです。
参考までに、最近のCPUのスレッド数を挙げときます。
・Intel Celeron…1〜2スレッド
・Intel Pentium…2スレッド
・Intel Core 2…2〜4スレッド
・Intel Atom…1〜2スレッド
・Intel i3…4スレッド
・Intel i5…4スレッド
・Intel i7…4〜12スレッド


今回は、実験としてグローバル変数を利用しましたが、
普段は利用しないでください。
バグの発生の原因となる可能性があります。

全9ページ

[1] [2] [3] [4] [5] [6] [7] [8] [9]

[ 次のページ ]


よしもとブログランキング

もっと見る

[PR]お得情報

数量限定!イオンおまとめ企画
「無料お試しクーポン」か
「値引きクーポン」が必ず当たる!
ふるさと納税サイト『さとふる』
11/30まで5周年記念キャンペーン中!
Amazonギフト券1000円分当たる!
お肉、魚介、お米、おせちまで
おすすめ特産品がランキングで選べる
ふるさと納税サイト『さとふる』

その他のキャンペーン


プライバシー -  利用規約 -  メディアステートメント -  ガイドライン -  順守事項 -  ご意見・ご要望 -  ヘルプ・お問い合わせ

Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.

みんなの更新記事