js+css实现可修改参数的多边形地形起伏波动动画效果代码
代码语言:html
所属分类:动画
代码描述:js+css实现可修改参数的多边形地形起伏波动动画效果代码
代码标签: js css 参数 多边形 地形 起伏 波动 动画
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<style>
@import url("https://fonts.googleapis.com/css2?family=Space+Mono&display=swap");
body {
margin: 0;
padding: 0;
overflow: hidden;
background-color: #87ceeb;
font-family: "Space Mono", monospace;
}
canvas {
display: block;
}
#controls-panel {
position: absolute;
top: 10px;
left: 10px;
background-color: rgba(255, 255, 255, 0.4);
border-radius: 5px;
transition: all 0.3s ease;
}
#controls {
padding: 10px;
display: none;
}
#toggle-controls {
cursor: pointer;
padding: 10px;
font-size: 18px;
background-color: rgba(255, 255, 255, 0.5);
border: none;
border-radius: 5px;
width: 100%;
text-align: left;
font-family: "Space Mono", monospace;
font-weight: 700;
}
label {
display: inline-block;
width: 140px;
margin-bottom: 5px;
font-size: 14px;
}
input[type="range"] {
width: 150px;
}
input[type="color"] {
vertical-align: middle;
}
select {
font-family: "Space Mono", monospace;
font-size: 14px;
margin-bottom: 10px;
}
</style>
</head>
<body translate="no">
<div id="controls-panel">
<button id="toggle-controls">☰ Configurations</button>
<div id="controls">
<label for="scale">Scale: </label>
<input type="range" id="scale" min="10" max="100" value="40"><br>
<label for="height">Height: </label>
<input type="range" id="height" min="50" max="300" value="200"><br>
<label for="speed">Speed: </label>
<input type="range" id="speed" min="0" max="0.05" step="0.001" value="0.01"><br>
<label for="background-color">Background: </label>
<input type="color" id="background-color" value="#87CEEB"><br>
<label for="color-theme">Color Theme: </label>
<select id="color-theme">
<option value="heatmap">Heatmap</option>
<option value="rainbow">Rainbow</option>
<option value="monochrome">Monochrome</option>
<option value="red">Red</option>
<option value="green">Green</option>
<option value="blue">Blue</option>
<option value="temperature">Temperature</option>
<option value="viridis">Viridis</option>
<option value="magma">Magma</option>
<option value="heat">Heat</option>
<option value="brewer-ygb">Brewer YGB</option>
</select>
</div>
</div>
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/p5.1.4.0.js"></script>
<script >
let cols, rows;
let scl = 40;
let w = 2000;
let h = 1600;
let flying = 0;
let terrain = [];
let backgroundColor;
let colorTheme = "heatmap";
function setup() {
createCanvas(windowWidth, windowHeight, WEBGL);
cols = w / scl;
rows = h / scl;
for (let x = 0; x < cols; x++) {
terrain[x] = [];
for (let y = 0; y < rows; y++) {
terrain[x][y] = 0;
}
}
backgroundColor = color(135, 206, 235); // Sky blue in RGB
// Add event listeners for controls
document.getElementById("scale").addEventListener("input", updateScale);
document.getElementById("speed").addEventListener("input", updateSpeed);
document.getElementById("height").addEventListener("input", updateHeight);
document
.getElementById("background-color")
.addEventListener("input", updateBackgroundColor);
document
.getElementById("color-theme")
.addEventListener("change", update.........完整代码请登录后点击上方下载按钮下载查看
网友评论0