2012年9月13日木曜日

正多角形の対角線2



DXライブラリを使って、正多角形とその対角線を描写してみた。
前回と画像の見た目は変わらないが、今度は動く。

#include <math.h>
#include "DxLib.h"

#define PI 3.1415926

int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
    SetMainWindowText("Diagonal");
    SetOutApplicationLogValidFlag(FALSE);
    ChangeWindowMode(TRUE);
    DxLib_Init();

    SetDrawScreen(DX_SCREEN_BACK);

    int x1, y1, x2, y2, SIZE=3, t=90;
    int Color = GetColor(255,0,255);
    double step;
    step = PI*2/SIZE;

    while(ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0){
        for(double i=0; i<2*PI; i+=step){
            x1 = (int)(200*cos(i));
            y1 = (int)(200*sin(i));
            for(double j=i+step; j< 2*PI; j+=step){
                x2 = (int)(200*cos(j));
                y2 = (int)(200*sin(j));
                DrawLine(320-y1,240-x1, 320-y2, 240-x2,Color);
            }
        }
        DrawFormatString(600, 440, Color, "%d", SIZE);

        t++;
        SIZE = (int)(t/30);
        step = PI*2/SIZE;
    }
    DxLib_End();
    return 0;
}

2012年9月4日火曜日

バイトの後って手がしびれる

Rewrite HFのおまけのリライトクエストを始めるか。
今月中に終わるかな…。

2012年8月31日金曜日

正多角形の対角線



正多角形とその対角線を描写するプログラムをJavaで作ってみた。

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Diagonal extends JFrame{
    public static void main(String[] args){
        new Diagonal();
    }

    public Diagonal(){
        setSize(500,500);
        setTitle("Diagonal");
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        MyJPanel myJPanel= new MyJPanel();
        Container c = getContentPane();
        c.add(myJPanel);
        setVisible(true);
    }

    public class MyJPanel extends JPanel{
        public static final int SIZE = 9;    //正九角形
        public MyJPanel(){
            setBackground(Color.white);
        }
        public void paintComponent(Graphics g){
            int x1,y1,x2,y2;
            double step;
            step = Math.PI*2/SIZE;
            for(double i=0; i<2 *Math.PI; i+=step){
                x1 = (int)(200*Math.cos(i));
                y1 = (int)(200*Math.sin(i));
                for(double j=i+step; j<2*Math.PI; j+=step){
                    x2 = (int)(200*Math.cos(j));
                    y2 = (int)(200*Math.sin(j));
                    g.drawLine(250-y1,250-x1,250-y2,250-x2);
                }
            }
        }
    }
}

2012年7月27日金曜日

HF買ってきた


無印の方をやり終えたら、開封しようと思う。

2012年6月29日金曜日

抵抗器

抵抗器のカラーコードを入力して、値を表示するプログラムを作ってみた。
#include <stdio.h>
int toler(int n) {
    int t;
    switch(n) {
        case 1: t=1; break;
        case 2: t=2; break;
        case 10: t=5; break;
        case 11: t=10; break;
        case 12: t=20; break;
    }
    return t;
}

int main(void) {
    int n1, n2, n3, n4, value, tolerance;
    printf("0:黒、1:茶、2:赤、3:橙、4:黄、5:緑、6:青、7:紫、8:灰、9:白、10:金、11:銀、12:無\n");
    printf("スペースで区切って、数字を入力: ");
    scanf("%d %d %d %d", &n1, &n2, &n3, &n4);
    value = n1 * 10 + n2;
    switch(n3) {
        case 0: printf("%dΩ ", value); break;
        case 1: printf("%dΩ ", value*10); break;
        case 2: printf("%.1fkΩ ", (double)value/10); break;
        case 3: printf("%dkΩ ", value); break;
        case 4: printf("%dkΩ ", value*10); break;
        case 5: printf("%.1fMΩ ", (double)value/10); break;
        case 6: printf("%dMΩ ", value); break;
        case 7: printf("%dMΩ ", value*10); break;
        case 8: printf("%dMΩ ", value*100); break;
        case 9: printf("%dMΩ ", value*1000); break;
        case 10: printf("%.1fΩ ", (double)value/10); break;
        case 11: printf("%.2fΩ ", (double)value/100); break;
    }
    tolerance = toler(n4);
    printf("±%d%\n", tolerance);
    return 0;
}
もっと良い方法が知りたい…。

2012年6月24日日曜日

シグマとガウス

↑を解くプログラムを作ってみた。
#include <stdio.h>
int main(void) {
    int n, i;
    double sum =0.0;
    printf("Input number: ");
    scanf("%d", &n);
    for(i=1; i<=n; i++) {
        sum += i* (int)(i/3);
    }
    printf("%.0lf\n", sum);
    return 0;
}
n=10 のとき 111
n=100 のとき 111111
n=1000 のとき 111111111
 …
おもしろいな~。

2012年6月8日金曜日

そろそろ寿命かな~

昨日、PCが起ちあがらなくなった。
セーフモードも、ファイルが見つからないとかでダメ。
XPのCD-ROMから回復コンソールを起動してfixmbrを実行したら、なおった。
MBRが壊れたのか…。
何もしていないのに…。
買い替えなければ…。