-
Notifications
You must be signed in to change notification settings - Fork 10
DTL.Shape.FractalIsland (形状クラス)
sitRyo edited this page Jan 15, 2020
·
7 revisions
namespace DTL.Shape {
public class FractalIsland : RectBaseFractal<FractalIsland>
}
FractalIsland
とは "Matrixにフラクタルな地形を生成する" 機能を持つクラスである。
DTL.Base.RectBaseFractal<TDerived> → DTL.Shape.FractalIsland
// (1)
FractalIsland()
// (2)
FractalIsland(uint startX, uint startY, uint width, uint height)
// (3)
FractalIsland(int minValue)
// (4)
FractalIsland(int minValue, int altitude)
// (5)
FractalIsland(int minValue, int altitude, int addAltitude)
// (6)
FractalIsland(DTL.Base.Coordinate2DimensionalAndLength2DimensionalmatrixRange matrixRange ,int minValue)
// (7)
FractalIsland(DTL.Base.Coordinate2DimensionalAndLength2DimensionalmatrixRange matrixRange ,int minValue, int altitude)
// (8)
FractalIsland(DTL.Base.Coordinate2DimensionalAndLength2DimensionalmatrixRange matrixRange ,int minValue, int altitude, int addAlititude)
// (9)
FractalIsland(uint startX, uint startY, uint width, uint height, int minValue)
// (10)
FractalIsland(uint startX, uint startY, uint width, uint height, int minValue, int altitude)
// (11)
FractalIsland(uint startX, uint startY, uint width, uint height, int minValue, int altitude, int addAltitude)
説明 |
---|
(1) 初期値なしのインスタンスを生成する。 |
(2) 描画範囲を指定したインスタンスを生成する。 |
(3), (6), (9) 最小値を指定したインスタンスを生成する。 |
(4), (7), (10) 最小値と高度を指定したインスタンスを生成する。 |
(5), (8), (11) 最小値と高度, 高度の変動値を指定したインスタンスを生成する。 |
Name | Accessibility | Descriptions | Version |
---|---|---|---|
uint startX | public get, protected set | 描画の開始点X | v0.1.0 |
uint startY | public get, protected set | 描画の開始点Y | v0.1.0 |
uint width | public get, protected set | 描画横幅W | v0.1.0 |
uint height | public get, protected set | 描画縦幅H | v0.1.0 |
int minValue | public get, protected set | 最小値 | v0.1.0 |
int altitude | public get, protected set | 高度 | v0.1.0 |
int addAltitude | public get, protected set | 高度の変動値 | v0.1.0 |
Name | Descriptions | Version |
---|---|---|
GetPointX | 描画始点座標Xを取得 | v0.1.0 |
GetPointY | 描画始点座標Yを取得 | v0.1.0 |
GetWidth | 描画横幅Wを取得 | v0.1.0 |
GetHeight | 描画縦幅Hを取得 | v0.1.0 |
GetPoint | 描画始点座標を取得 | v0.1.0 |
GetValue | altiudeを取得 | v0.1.0 |
GetAltitude | altiudeを取得 | v0.1.0 |
GetaddAltitude | addAltitudeを取得 | v0.1.0 |
GetMinValue | minValueを取得 | v0.1.0 |
Name | Descriptions | Version |
---|---|---|
SetPointX | 描画始点座標Xを指定 | v0.1.0 |
SetPointY | 描画始点座標Yを指定 | v0.1.0 |
SetWidth | 描画横幅Wを指定 | v0.1.0 |
SetHeight | 描画縦幅Hを指定 | v0.1.0 |
SetPoint | 描画始点座標(X,Y)を指定 | v0.1.0 |
SetRange | 描画範囲(X,Y,W,H)を指定 | v0.1.0 |
SetValue | 高度を指定 | v0.1.0 |
名前 | 説明 | 対応バージョン |
---|---|---|
ClearPointX | 描画始点座標Xを消去 | v0.1.0 |
ClearPointY | 描画始点座標Yを消去 | v0.1.0 |
ClearWidth | 描画横幅Wを消去 | v0.1.0 |
ClearHeight | 描画縦幅Hを消去 | v0.1.0 |
ClearPoint | 描画始点座標(X,Y)を消去 | v0.1.0 |
ClearRange | 描画範囲(X,Y,W,H)を消去 | v0.1.0 |
ClearValue | altitudeを消去 | v0.1.0 |
ClearAltitude | altiudeを消去 | v0.1.0 |
ClearaddAltitude | addAltitudeを消去 | v0.1.0 |
ClearMinValue | minValueを消去 | v0.1.0 |
Clear | 描画範囲とaltitudeを消去 | v0.1.0 |
Name | Descriptions | Version |
---|---|---|
Draw(int[,]) | Matrixに描画する | v0.1.0 |
Create(int[,]) | Matrixに描画してMatrixを返す | v0.1.0 |
DrawNormalize(float[,]) | [0, 1]に正規化した値をMatrixに描画する | v0.1.0 |
using DTL.Console;
using DTL.Shape;
using UnityEngine;
public class GenerateFractalIsland : MonoBehaviour {
public int width = 32;
public int height = 32;
public int minValue = 10;
public int altitude = 100;
public int addAltitude = 20;
private FractalIsland fractalIsland;
void Start () {
var matrix = new int[height, width];
fractalIsland = new FractalIsland(minValue, altitude, addAltitude);
fractalIsland.Draw(matrix);
new OutputConsole().Draw(matrix);
new OutputConsole(arg => arg < 100, "..", "##").Draw(matrix);
}
}
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 3 3 3 4 4 5 4 5 7 7 6 6 7 6 5 5 6 6 6 5 4 4 2 4 4 3 3 2 2 2
0 3 6 6 7 7 9 8 9 11 14 13 13 13 14 12 10 11 13 12 12 10 8 6 5 6 9 7 6 5 4 2
0 3 6 6 10 11 12 13 13 14 18 17 19 18 18 16 15 15 17 17 18 15 12 10 7 7 9 9 9 7 5 2
0 3 7 10 14 15 16 17 19 20 22 24 26 24 23 21 21 21 22 23 24 20 17 13 11 10 11 11 13 9 6 3
0 3 8 10 15 18 20 22 23 23 26 26 29 28 28 25 25 24 25 26 26 23 19 16 13 12 12 11 11 8 7 3
0 5 10 13 16 20 24 26 28 29 31 31 33 33 35 32 31 29 29 28 28 25 22 19 16 15 14 12 11 9 9 4
0 5 9 13 17 21 26 30 33 33 34 34 36 36 37 35 36 34 32 31 30 26 24 21 19 17 15 12 10 7 6 3
0 4 9 13 19 23 28 33 39 38 39 39 40 40 41 41 42 39 37 34 32 29 27 24 23 19 16 13 11 7 5 2
0 5 9 13 19 23 29 33 38 39 42 42 43 45 46 46 47 44 41 39 37 33 32 27 24 20 19 15 13 9 5 3
0 5 10 15 21 25 30 34 39 42 46 46 47 49 52 52 52 49 47 44 42 40 38 32 27 24 22 19 16 11 7 3
0 6 11 16 22 26 31 35 39 41 46 46 50 51 55 56 57 53 51 49 47 43 40 33 29 26 24 21 19 13 8 4
0 6 12 18 24 28 32 36 40 43 47 50 54 56 58 60 63 59 57 54 53 47 42 37 32 29 27 24 22 16 11 5
0 7 12 18 23 27 33 36 40 43 47 51 56 58 62 63 67 64 61 58 54 48 44 39 34 31 29 25 21 15 10 4
0 6 13 17 22 28 34 37 41 44 48 53 58 62 66 69 73 69 67 61 57 51 46 41 37 34 32 26 21 15 10 5
0 5 11 16 21 25 32 36 41 45 50 55 60 64 69 74 78 74 69 63 59 53 49 44 39 34 31 25 20 14 10 5
0 5 10 15 21 25 31 36 42 47 52 57 63 67 73 78 85 78 73 67 63 57 52 47 42 36 31 25 21 15 10 5
0 5 9 13 18 24 29 34 39 45 50 55 59 63 67 72 78 74 69 63 59 54 50 45 40 33 30 25 20 15 10 4
0 4 8 12 17 22 28 32 36 42 48 52 56 59 63 67 73 69 67 61 57 52 49 43 39 34 31 25 21 15 10 5
0 3 7 11 15 19 25 29 33 38 44 48 53 55 59 63 67 64 61 57 54 50 46 41 37 33 29 25 21 15 10 4
0 3 7 10 15 18 22 26 31 35 40 45 51 53 56 59 63 59 57 54 53 48 44 40 37 32 29 25 23 16 11 5
0 2 5 8 13 16 21 23 27 30 35 40 45 47 51 54 57 54 51 49 48 45 41 37 35 32 29 23 20 13 10 4
0 2 5 8 12 16 21 22 25 27 31 35 40 43 47 49 52 49 47 45 44 41 39 36 34 32 30 24 19 14 10 5
0 3 4 8 11 13 17 19 22 24 27 31 35 37 41 44 47 44 42 41 40 38 36 33 33 30 27 22 17 13 9 5
0 2 5 7 10 12 15 17 21 22 25 27 31 33 36 39 42 40 39 37 37 35 34 33 32 28 24 20 16 12 8 4
0 3 5 6 8 10 13 14 17 20 22 25 27 29 32 34 36 35 35 33 33 31 32 30 28 25 21 18 14 10 7 3
0 3 7 6 7 9 12 13 15 17 20 22 24 26 28 29 31 31 33 31 31 30 30 27 24 21 19 15 12 9 6 3
0 2 4 3 5 7 9 9 12 13 17 18 21 22 23 24 25 25 27 27 28 25 25 22 20 18 15 12 10 8 5 2
0 1 2 3 5 5 7 8 10 12 14 16 18 18 19 19 21 21 23 24 27 23 21 18 16 14 12 10 8 6 4 2
0 1 3 2 3 3 5 6 7 8 10 10 13 14 15 15 15 14 16 17 19 18 16 14 12 11 9 8 6 6 4 2
0 2 5 3 2 3 4 4 5 5 6 7 9 10 13 11 10 10 11 11 13 12 13 10 8 7 6 5 4 4 4 2
0 1 2 1 1 2 2 2 2 2 3 4 4 5 6 5 5 5 5 6 6 7 6 6 4 3 3 3 2 2 2 2
using DTL.Shape;
using DTL.Random;
using System.Collections.Generic;
using DTL.Util;
using UnityEngine;
public class GenerateFractalIslandTerrain : MonoBehaviour {
public int depth = 20;
public int width = 48;
public int height = 48;
public int minValue = 10;
public int altitude = 150;
public int addAltitude = 75;
private Terrain terrain;
private FractalIsland fractalIsland;
private XorShift128 rand = new XorShift128();
public List<Texture2D> texture2D = new List<Texture2D>();
void Start() {
fractalIsland = new FractalIsland(minValue, altitude, addAltitude);
this.terrain = GetComponent<Terrain>();
TerrainUtil terrainUtil = new TerrainUtil(terrain, texture2D, fractalIsland, height, width, depth);
terrainUtil.Draw();
}
}
Copyright (c) 2017-2019 Kasugaccho. Copyright (c) 2018-2019 As Project.
Distributed under the Boost Software License, Version 1.0.(See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)