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