ひろひろの生活日記(LIFE Of HIROHIRO)

パソコン講習とソフト開発をしています。自作小説も掲載しています。ネット情報発信基地(上野博隆)Hirotaka Ueno

球に色を付ける。

2022年01月15日 09時41分17秒 | ゲーム開発(Game development)

球に角度16等分に色を付けています。

 

var canvas;
var ctx;

WIDTH  = 640;
HEIGHT = 480;

VIEW_WIDTH  = 640;
VIEW_HEIGHT = 480;

RAD = 180;

var lx = -1.0 / 1.732;
var ly = -1.0 / 1.732;
var lz =  1.0 / 1.732;

var fAmbient = 128.0;
var fDirect = 128.0;
var fDot = 0;

var bordcolor = ["white", "silver", "gray"];


function init(){
    canvas = document.getElementById('world');
    canvas.width = WIDTH;
    canvas.height = HEIGHT;
    ctx = canvas.getContext('2d');
    ctx.font = "48px 'MS Pゴシック'";

    user = window.navigator.userAgent.toLowerCase();
     nBright = 0;
     //(描画処理)
     for( y = 0; y < VIEW_HEIGHT; y++){
        for( x = 0; x < VIEW_WIDTH; x++){
            dx = x - VIEW_WIDTH  / 2.0;
            dy = y - VIEW_HEIGHT / 2.0;
            dzsq = RAD * RAD -dx * dx - dy * dy;
            if(dzsq > 0.0 ){
               dz = Math.sqrt(dzsq);
               fAngle = Math.atan2(dz, dx);
               if(fAngle < 0.0) fAngle += 2.0 * Math.PI;
               nx = dx / RAD; ny = dy / RAD; nz = dz / RAD;
               fDot = nx * lx + ny * ly + nz * lz;
               if(fDot >= 0.0){
                  nBright = parseInt(fDot * fDirect + fAmbient);
               } else {
                  nBright = parseInt(fAmbient);
               }
               if(parseInt(fAngle /( 2.0 * Math.PI) * 16 ) & 1){
                  wkcolor = "rgb(" + nBright + "," + nBright + "," + nBright + ")";     //色なし
               } else {
                  wkcolor = "rgb(" + nBright + "," + "0" + "," + nBright + ")";           //色付き
               }
               ctx.beginPath();
               ctx.lineWidth = 1;
               ctx.moveTo(x,y);
               ctx.lineTo(x+1,y+1);
//全て座標を指定(ドット)
               ctx.strokeStyle = wkcolor;
               ctx.stroke();
               
            }
          }
       }
}

 


コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 人間の本位のストーリー20... | トップ | 今日2022年01月16日(日)の運勢。 »
最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

ゲーム開発(Game development)」カテゴリの最新記事