勾配とは
水平面に対する傾き度合い。勾配の単位は「%」。
水平長を1とした時の垂直長の比率で表す。数学のグラフでいう傾きa。
底辺100m、高さ10mの坂は
10 / 100 = 0.1 =10%の勾配
例
箱根新道の平均勾配は5%(2.9°)、最大勾配は15%(8.5°)
箱根旧道の平均勾配は6%(3.4°)、最大勾配は23%(13.0°)
視覚化
//
// 勾配を彩度でグラデーションする
// RunOver:Points
//
float maxSlople = chf("slope"); // 上限の勾配(%)(赤く表示される値)
vector N = normalize(@N);
vector up = set(0,1,0);
// 傾斜角
float angle = acos(dot(N, up));
// 勾配(%)へ変換
float slope = tan(angle)*100;
float range = 0.5; // 0~1までの彩度幅
int sign = -1; // 1か-1のグラデーションの向き
float offset = 0.5; // 彩度の開始位置
float hue = clamp(slope / maxSlople, 0, 1) * range * sign + offset;
@Cd = hsvtorgb(hue, 1, 1);
面法線Nとupの内積から角度を求める。上を向いている面が0°になり、絶壁が90°になる。