合計 昨日 今日
インフォメーション: 当サイトは3/3~3/4に大規模なメンテを実施し大幅リニューアルします。そのため3/3~3/4に長時間の利用停止時間が発生します。ご了承ください。

アバター
Ultimate
 
記事: 38
登録日時: 2010年10月16日(土) 20:20
お住まい: 埼玉県
日記: 日記を見る (20)
日記
- 9月 2011
+ 7月 2011
+ 6月 2011
+ 5月 2011
+ 1月 2011
+ 12月 2010
+ 11月 2010
+ 10月 2010
カテゴリ
カテゴリに指定された日記はありません

星の角を増やしていくと円に近付いて行くのがよくわかるプログラム(笑)

パーマリンクby Ultimate on 2011年1月21日(金) 20:45

ゲーム内で星を使用してみようかと思い、星の描画関数を作ってみました。
それを利用して、頂点を徐々に増やしていくと円に近付いていくというプログラムをつくってみました。。。
以下がソースです。星の描画関数などの使用はご自由にどうぞ。
円周率をPIで定義して、またmath.hが必要条件なのでそこをお忘れなくしてください。

コード[C]: 全て選択
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include "DxLib.h"
#include <math.h>
#define PI 3.14159265358979323846264338327950288419
 
/*
星の描画関数
■簡易リファレンス
num:星の頂点の個数
x:星の表示位置
y:星の表示位置
size:サイズ(表示位置から角の頂点までの距離)
radian:デフォルト状態での傾き
color:色の設定
*/
void DrawStar(int num,double x,double y,double size,double radian,int color){
    int i,n;
    double x1,x2,y1,y2;
    radian-=PI/2;
    if(num>4){
        for(i=0;i<num;i++){
            x1=x+cos(radian+PI*2*i/num)*size;
            y1=y+sin(radian+PI*2*i/num)*size;
            n=(i+2)%num;
            x2=x+cos(radian+PI*2*n/num)*size;
            y2=y+sin(radian+PI*2*n/num)*size;
            DrawLine(x1,y1,x2,y2,color);
        }
    }
}
 
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){
    ChangeWindowMode(TRUE);
    SetBackgroundColor(0,0,0);
    SetWindowSizeChangeEnableFlag(TRUE) ;
    SetMainWindowText("星の描画");
    DxLib_Init();
    SetDrawScreen(DX_SCREEN_BACK);
    int test=5;
    int counter=0;
   
    int White=GetColor(255,255,255);
   
    while(ProcessMessage()==0 && ClearDrawScreen()==0 && CheckHitKey(KEY_INPUT_ESCAPE)==0){
        SetBackgroundColor(0,0,0);
       
        DrawStar(test,320.0,240.0,240.0,0,White);
        if(counter%20==0&&counter>=20){
            test++;
        }
        counter++;
        ScreenFlip();
    }
   
    return 0;
}
最後に編集したユーザー Ultimate [ 2011年1月21日(金) 20:46 ], 累計 1 回

コメント数: 0 閲覧数: 26560

オンラインデータ

登録ユーザー: みけCAT