Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

neknaj/3d

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

47 Commits

Repository files navigation

Neknaj 3D Library

bem130が2022年の3月から7月ごろにかけて作っていた3D描画のプログラムを改良しつつ、使いやすいようにまとめたものです。

javascript

./js

オブジェクト

オブジェクトは、三角形の面の配列で表される

polygon = [[x,y,z],[x,y,z],[x,y,z],[r,g,b]];
// polygon = [一つ目の頂点,二つ目の頂点,三つ目の頂点, 面の色]
object = [polygon,polygon,polygon,...];
// object = [一つ目の面,二つ目の面,三つ目の面,...]

カメラ

カメラは、座標・向き・解像度で表される
今後、視野の広さも追加予定

座標

pos = [x,y,z];
// pos = [x座標,y座標,z座標]

向き

angle = [h,v];
// angle = [水平方向,垂直方向]

解像度

display = [x,y];
// display = [横の解像度,縦の解像度]

カメラ

camera = [pos,angle,display];
// camera = [座標,向き,解像度]

インターフェイス

初期化

classを初期化する

let tddraw = new tdDRAW();

オブジェクトの設定

オブジェクトを設定する

tddraw.setObj(object);

カメラを設定

カメラを設定する

tddraw.setCamera(camera);

画像を出力する

画像を出力する
返り値はImageData

image = tddraw.getImg();

c++

./cpp

オブジェクト

オブジェクトは、ポリゴンの動的配列で表される
ポリゴンは3つの座標と色で表される
tdDrawPolygon.distanceは使用されていない

struct tdDrawPolygon { // ポリゴンの定義
 std::array<long double,3> p1; // 1つめの頂点
 std::array<long double,3> p2; // 2つめの頂点
 std::array<long double,3> p3; // 3つめの頂点
 std::array<unsigned char,3> color; // ポリゴンの色
 long double distance = 0; // ポリゴンまでの距離 未使用
};
typedef std::vector<struct tdDrawPolygon> tdDrawObject; // オブジェクトの定義

オブジェクトの設定

void tdDraw::setObj(tdDrawObject object);

画像を出力する

画像を出力する
返り値はunsigned char*

unsigned char* tdDraw::getImg (int width,int height);

Releases

No releases published

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /