-
Notifications
You must be signed in to change notification settings - Fork 11
DTL.Shape.DiamondSquareAverageCornerIsland (形状クラス)
sitRyo edited this page Jan 15, 2020
·
7 revisions
namespace DTL.Shape {
public class DiamondSquareAverageCornerIsland
}DiamondSquareAverageCornerIslandとは "Matrixの描画範囲にダイヤモンドスクエア法に従って描画値を設置する" 機能を持つクラスである。
描画範囲の全てを必ず塗りつぶすとは限らない (Matrixの初期化が必要) 。
RectBaseFractal<TDerived> → DTL.Shape.DiamondSquareAverageCornerIsland
| Constructors | Descriptions | Version |
|---|---|---|
| DiamondSquareAverageCornerIsland() | Matrixの内容をそのまま出力するDiamondSquareAverageCornerIslandのインスタンスを生成します。 | v0.1.0 |
| DiamondSquareAverageCornerIsland(uint startX, uint startY, uint width, uint height) | 描画範囲を指定したDiamondSquareAverageCornerIslandのインスタンスを生成します。 | v0.1.0 |
| DiamondSquareAverageCornerIsland(int minValue) | HeightMapの最低高度を指定したDiamondSquareAverageCornerIslandのインスタンスを生成します。 | v0.1.0 |
| DiamondSquareAverageCornerIsland(int minValue, int altitude) | HeightMapの最低高度と高度を指定したDiamondSquareAverageCornerIslandのインスタンスを生成します。 | v0.1.0 |
| DiamondSquareAverageCornerIsland(int minValue, int altitude, int addAltitude) | HeightMapの最低高度と高度, HeightMapの各要素に[0, addAlititude]の間で追加される変動値を指定したDiamondSquareAverageCornerIslandのインスタンスを生成します。 |
v0.1.0 |
| DiamondSquareAverageCornerIsland(DTL.Base.Coordinate2DimensionalAndLength2DimensionalmatrixRange matrixRange, int minValue) | 描画範囲と最低高度を指定したDiamondSquareAverageCornerIslandのインスタンスを生成します。 | v0.1.0 |
| DiamondSquareAverageCornerIsland(DTL.Base.Coordinate2DimensionalAndLength2DimensionalmatrixRange matrixRange, int minValue, int altitude) | 描画範囲と最低高度, 高度を指定したDiamondSquareAverageCornerIslandのインスタンスを生成します。 | v0.1.0 |
| DiamondSquareAverageCornerIsland(DTL.Base.Coordinate2DimensionalAndLength2DimensionalmatrixRange matrixRange, int minValue, int altitude, int addAltitude) | 描画範囲と最低高度, 高度, HeightMapの各要素に[0, addAlititude]の間で追加される変動値を指定したDiamondSquareAverageCornerIslandのインスタンスを生成します。 |
v0.1.0 |
| DiamondSquareAverageCornerIsland(uint startX, uint startY, uint width, uint height, int minValue) | 描画範囲と最低高度を指定したDiamondSquareAverageCornerIslandのインスタンスを生成します。 | v0.1.0 |
| DiamondSquareAverageCornerIsland(uint startX, uint startY, uint width, uint height, int minValue, int altitude) | 描画範囲と最低高度, 高度を指定したDiamondSquareAverageCornerIslandのインスタンスを生成します。 | v0.1.0 |
| DiamondSquareAverageCornerIsland(uint startX, uint startY, uint width, uint height, int minValue, int altitude, int addAltitude) | 描画範囲と最低高度, 高度, HeightMapの各要素に[0, addAlititude]の間で追加される変動値を指定したDiamondSquareAverageCornerIslandのインスタンスを生成します。 |
v0.1.0 |
| 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 |
| altitude | public get, protected set | 高度 | v0.1.0 |
| addAltitude | public get, protected set | 高度の変動値 | v0.1.0 |
| minValue | 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 | 高度を取得 | v0.1.0 |
| GetAltitude | 高度を取得 | v0.1.0 |
| GetMinValue | 最低高度を取得 | v0.1.0 |
| GetAddAltitude | 変動値を取得 | 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 |
| SetAltitude | 高度を指定 | 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 | 描画値を消去 | v0.1.0 |
| ClearMinValue | 最低高度を消去 | v0.1.0 |
| ClearAltitude | 高度を消去 | v0.1.0 |
| ClearrAddAltitude | 変動値を消去 | 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 |
public class GenerateIsland : MonoBehaviour {
public int height = 65;
public int width = 65;
public int minValue = 10;
public int altitude = 100;
public int addAltitude = 50;
private DiamondSquareAverageCornerIsland diamondSquareAverageCornerIsland;
void Start() {
var matrix = new int[height, width];
diamondSquareAverageCornerIsland
= new DiamondSquareAverageCornerIsland(minValue, altitude, addAltitude);
diamondSquareAverageCornerIsland.Draw(matrix);
new OutputConsole().Draw(matrix);
new OutputConsole(arg => arg < 90, "..", "##").Draw(matrix);
}
}110 109 108 107 106 105 104 103 102 101 100 99 98 97 96 95 95 0 0 0
109 114 111 109 108 106 105 107 101 107 105 106 99 100 97 96 90 0 0 0
109 111 115 112 110 108 107 103 101 105 110 105 101 99 98 92 87 0 0 0
108 113 112 110 112 110 106 105 100 106 106 105 102 103 95 93 83 0 0 0
109 109 111 112 114 110 107 103 101 101 102 103 105 98 92 86 81 0 0 0
108 114 113 111 111 110 110 105 100 105 103 102 99 97 93 88 77 0 0 0
108 112 117 112 109 111 114 107 100 102 104 99 94 94 94 84 74 0 0 0
108 110 111 111 106 109 108 106 100 101 98 93 89 86 85 81 71 0 0 0
109 107 106 105 104 103 102 101 101 96 92 88 84 80 76 72 69 0 0 0
108 109 111 110 108 108 103 99 97 95 92 87 82 81 73 73 65 0 0 0
108 112 117 114 113 108 105 99 94 93 93 86 80 75 71 66 62 0 0 0
108 113 115 116 117 113 104 99 91 88 87 82 78 77 68 63 59 0 0 0
108 111 115 118 122 113 105 96 88 85 82 79 77 71 66 61 56 0 0 0
108 114 115 117 114 111 103 96 85 87 81 77 72 71 68 63 53 0 0 0
108 112 117 111 107 104 102 92 82 81 81 74 68 69 70 60 50 0 0 0
108 109 108 107 99 98 93 87 79 77 74 70 64 67 61 58 47 0 0 0
108 104 100 96 92 88 84 80 76 72 68 64 60 56 52 48 45 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 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
##################################......
##################################......
################################........
################################........
##############################..........
##############################..........
##############################..........
########################................
######################..................
######################..................
######################..................
##################......................
################........................
################........................
################........................
##############..........................
##########..............................
........................................
........................................
........................................
public class GenerateDiamondSquareAverageCornerIsland : MonoBehaviour {
public int depth = 20;
public int width = 64;
public int height = 64;
public int minValue = 10;
public int altitude = 150;
public int addAltitude = 75;
private Terrain terrain;
private DiamondSquareAverageCornerIsland diamondSquareAverageCornerIsland;
public List<Texture2D> texture2D = new List<Texture2D>();
void Start() {
diamondSquareAverageCornerIsland = new DiamondSquareAverageCornerIsland(minValue, altitude, addAltitude);
this.terrain = GetComponent<Terrain>();
TerrainUtil terrainUtil =
new TerrainUtil(terrain, texture2D, diamondSquareAverageCornerIsland, height + 1, width + 1, 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)