当前位置:网站首页>Realize colorful lines and shape your heart
Realize colorful lines and shape your heart
2022-07-06 23:12:00 【Fertilizer science】
Table of contents title
demonstration
Source code display
Create a canvas
<canvas width="300" height="300" style="width:100%;height:100vh;" id="c"></canvas>
Basic style settings
overflow grammar : overflow:{1,2}
= visible | hidden | scroll | auto
The default value is :visible
Value :
visible: Don't cut content .hidden: Cut the content that exceeds the size of the object , The scroll bar will not appear .scroll: Cut the content that exceeds the size of the object , And display the excess content in the way of scroll bar .auto: Cut content and add scrollbars when needed , This is a body Objects and textarea The default value of .
padding:[ | ]{1,4}
The default value is : Look at each individual property
Related properties :[ padding-top ] || [ padding-right ] || [ padding-bottom ] || [
padding-left ]Value : : Use the length value to define the inner padding . Negative value not allowed : Use percentages to define internal padding . Negative value not allowed
explain : Retrieve or set the inner margin of the four sides of an object .
If all four parameter values are provided , Will press up 、 Right 、 Next 、 The order of the left acts on the four sides . If only one , Use for all four sides .
If you provide two , The first one is for 、 Next , The second one is for the left 、 Right . If three , The first one is for , The second one is for the left 、 Right , The third one is for .
Inline objects can use this property to set left 、 The inner patch on the right side ; To set the upper 、 The inner patch on both sides , You must first make the object appear at the block level or inline block level .
The corresponding script feature is padding.
html,body{
border: 0;
padding: 0;
margin: 0;
overflow: hidden;
background: #000;
}
.info{
z-index:999;
position : absolute;
left:0;
top:0;
padding:10px;
color:#fff;
background: rgba(0,0,0,0.5);
text-transform:capitalize;
}
use js To design animation effects
Defining variables
var canvas = document.getElementById('c');
var ctx = canvas.getContext("2d");
var height = void 0,width = void 0,innerpoints = [],outerpoints = [],particles = [];
var noofpoints = 200,trashold = 10;
var x = void 0,y = void 0,p = void 0,n = void 0,point = void 0,dx = void 0,dy = void 0,color = void 0;
deltaangle = Math.PI * 2 / noofpoints,
r = Math.min(height, width) * 0.5;
var distance = function distance(x1, y1, x2, y2) {
return Math.sqrt(Math.pow(y2 - y1, 2) + Math.pow(x2 - x1, 2));
};
var mapVal = function mapVal(num, in_min, in_max, out_min, out_max) {
return (num - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
};
Set up the canvas resize
var resize = function resize() {
height = ctx.canvas.clientHeight;
width = ctx.canvas.clientWidth;
if (ctx.canvas.clientWidth !== canvas.width ||
ctx.canvas.clientHeight !== canvas.height)
{
console.log("resized");
canvas.width = width;
canvas.height = height;
ctx.translate(canvas.width / 2, canvas.height / 2);
ctx.rotate(-Math.PI);
innerpoints = [];
r = 10;
for (var i = deltaangle; i <= Math.PI * 2; i += deltaangle) {
x = r * 16 * Math.pow(Math.sin(i), 3);
y = r * (13 * Math.cos(i) - 5 * Math.cos(2 * i) - 2 * Math.cos(3 * i) - Math.cos(4 * i));
innerpoints.push({
x: x,
y: y });
x = 10 * r * 16 * Math.pow(Math.sin(i), 3);
y = 10 * r * (13 * Math.cos(i) - 5 * Math.cos(2 * i) - 2 * Math.cos(3 * i) - Math.cos(4 * i));
outerpoints.push({
x: x,
y: y });
var step = random(0.001, 0.003, true);
particles.push({
step: step,
x: x,
y: y });
}
}
};
Design lines
var draw = function draw() {
ctx.fillStyle = "rgba(0,0,0,0.03)";
ctx.fillRect(-width, -height, width * 2, height * 2);
ctx.beginPath();
for (var i = 0; i < innerpoints.length; i++) {
s = outerpoints[i];
d = innerpoints[i];
point = particles[i];
if (distance(point.x, point.y, d.x, d.y) > 10) {
dx = d.x - s.x;
dy = d.y - s.y;
point.x += dx * point.step;
point.y += dy * point.step;
color = distance(0, 0, point.x, point.y);
ctx.beginPath();
ctx.fillStyle = "hsl(" + color % 360 + ",100%,50%)";
ctx.arc(point.x, point.y, 2, 0, Math.PI * 2, false);
ctx.closePath();
ctx.fill();
} else {
point.x = d.x;
point.y = d.y;
ctx.beginPath();
ctx.arc(point.x, point.y, 2, 0, Math.PI * 2, false);
ctx.closePath();
ctx.fill();
particles[i].x = s.x;
particles[i].y = s.y;
particles[i].step = random(0.001, 0.003, true);
}
}
};
Click to get the information directly
If you are learning python perhaps Java Even if it is C If you have any problems, you can leave me a message , Because in the early stage of learning, novices always take many detours , At this time, if there is no one to help, it is easy to give up . There are many such examples around. Many people change their majors and directions as they learn , Not only their own problems, but also the lack of correct learning . So as a passer-by, I hope to leave a message to me if you have any questions , It's not help, it's just a matter of typing a few lines easily .
Here you are python,Java Learning materials and interesting programming projects , More difficult to find resources . Anyway, it's not a loss to see .
边栏推荐
- 动作捕捉用于蛇运动分析及蛇形机器人开发
- HDU 5077 NAND (violent tabulation)
- 企业不想换掉用了十年的老系统
- 机器人材料整理中的套-假-大-空话
- Efficient ETL Testing
- Custom swap function
- 服务器的系统怎么选者
- On the problems of born charge and non analytical correction in phonon and heat transport calculations
- Aardio - construct a multi button component with customplus library +plus
- Dayu200 experience officer runs the intelligent drying system page based on arkui ETS on dayu200
猜你喜欢
Docker starts MySQL and -emysql_ ROOT_ Password = my secret PW problem solving
MySQL中正则表达式(REGEXP)使用详解
为了交通安全,可以做些什么?
Designed for decision tree, the National University of Singapore and Tsinghua University jointly proposed a fast and safe federal learning system
UE4 blueprint learning chapter (IV) -- process control forloop and whileloop
C three ways to realize socket data reception
Word2vec (skip gram and cbow) - pytorch
Motion capture for snake motion analysis and snake robot development
MySQL authentication bypass vulnerability (cve-2012-2122)
Modules that can be used by both the electron main process and the rendering process
随机推荐
HDU 5077 NAND (violent tabulation)
Modules that can be used by both the electron main process and the rendering process
Huawei cloud gaussdb (for redis) unveils issue 21: using Gauss redis to achieve secondary indexing
浅谈网络安全之文件上传
Improving Multimodal Accuracy Through Modality Pre-training and Attention
【Unity】升级版·Excel数据解析,自动创建对应C#类,自动创建ScriptableObject生成类,自动序列化Asset文件
Dockermysql modifies the root account password and grants permissions
让 Rust 库更优美的几个建议!你学会了吗?
Const keyword
NFTScan 开发者平台推出 Pro API 商业化服务
How does crmeb mall system help marketing?
CSDN 上传图片取消自动加水印的方法
Is the more additives in food, the less safe it is?
On the problems of born charge and non analytical correction in phonon and heat transport calculations
Docker starts MySQL and -emysql_ ROOT_ Password = my secret PW problem solving
Unified Focal loss: Generalising Dice and cross entropy-based losses to handle class imbalanced medi
DR-Net: dual-rotation network with feature map enhancement for medical image segmentation
GPT-3当一作自己研究自己,已投稿,在线蹲一个同行评议
Slide the uniapp to a certain height and fix an element to the top effect demo (organize)
为了交通安全,可以做些什么?