python写爱心代码【爱心代码编程python可复制粘贴】

news2024/11/24 2:16:49

python写爱心代码【爱心代码编程python可复制粘贴】
python程序代码:heart.py
from math import cos, pi
import numpy as np
import cv2
import os, glob 
 
class HeartSignal:
    def __init__(self, curve="heart", title="Love U", frame_num=20, seed_points_num=2000, seed_num=None, highlight_rate=0.3,
                 background_img_dir="", set_bg_imgs=False, bg_img_scale=0.2, bg_weight=0.3, curve_weight=0.7, frame_width=1080, frame_height=960, scale=10.1,
                 base_color=None, highlight_points_color_1=None, highlight_points_color_2=None, wait=100, n_star=5, m_star=2):
        super().__init__()
        self.curve = curve
        self.title = title
        self.highlight_points_color_2 = highlight_points_color_2
        self.highlight_points_color_1 = highlight_points_color_1
        self.highlight_rate = highlight_rate
        self.base_color = base_color
        self.n_star = n_star
        self.m_star = m_star
        self.curve_weight = curve_weight
        img_paths = glob.glob(background_img_dir + "/*")
        self.bg_imgs = []
        self.set_bg_imgs = set_bg_imgs
        self.bg_weight = bg_weight
        if os.path.exists(background_img_dir) and len(img_paths) > 0 and set_bg_imgs:
            for img_path in img_paths:
                img = cv2.imread(img_path)
                self.bg_imgs.append(img)
            first_bg = self.bg_imgs[0]
            width = int(first_bg.shape[1] * bg_img_scale)
            height = int(first_bg.shape[0] * bg_img_scale)
            first_bg = cv2.resize(first_bg, (width, height), interpolation=cv2.INTER_AREA)
 
            # 对齐图片,自动裁切中间
            new_bg_imgs = [first_bg, ]
            for img in self.bg_imgs[1:]:
                width_close = abs(first_bg.shape[1] - img.shape[1]) < abs(first_bg.shape[0] - img.shape[0])
                if width_close:
                    # resize
                    height = int(first_bg.shape[1] / img.shape[1] * img.shape[0])
                    width = first_bg.shape[1]
                    img = cv2.resize(img, (width, height), interpolation=cv2.INTER_AREA)
                    # crop and fill
                    if img.shape[0] > first_bg.shape[0]:
                        crop_num = img.shape[0] - first_bg.shape[0]
                        crop_top = crop_num //www.diyiyuanma.cn 2
                        crop_bottom = crop_num - crop_top
                        img = np.delete(img, range(crop_top), axis=0)
                        img = np.delete(img, range(img.shape[0] - crop_bottom, img.shape[0]), axis=0)
                    elif img.shape[0] < first_bg.shape[0]:
                        fill_num = first_bg.shape[0] - img.shape[0]
                        fill_top = fill_num www.lmtaolu.cn// 2
                        fill_bottom = fill_num - fill_top
                        img = np.concatenate([np.zeros([fill_top, width, 3]), img, np.zeros([fill_bottom, width, 3])], axis=0)
                else:
                    width = int(first_bg.shape[0] / img.shape[0] * img.shape[1])
                    height = first_bg.shape[0]
                    img = cv2.resize(img, (width, height), interpolation=cv2.INTER_AREA)
                    # crop and fill
                    if img.shape[1] > first_bg.shape[1]:
                        crop_num = img.shape[1] - first_bg.shape[1]
                        crop_top = crop_num www.vbjcw.cn// 2
                        crop_bottom = crop_num - crop_top
                        img = np.delete(img, range(crop_top), axis=1)
                        img = np.delete(img, range(img.shape[1] - crop_bottom, img.shape[1]), axis=1)
                    elif img.shape[1] < first_bg.shape[1]:
                        fill_num = first_bg.shape[1] - img.shape[1]
                        fill_top = fill_num // 2
                        fill_bottom = fill_num - fill_top
                        img = np.concatenate([np.zeros([fill_top, width, 3]), img, np.zeros([fill_bottom, width, 3])], axis=1)
                new_bg_imgs.append(img)
            self.bg_imgs = new_bg_imgs
            assert all(img.shape[0] == first_bg.shape[0] and img.shape[1] == first_bg.shape[1] for img in self.bg_imgs), "背景图片宽和高不一致"
            self.frame_width = self.bg_imgs[0].shape[1]
            self.frame_height = self.bg_imgs[0].shape[0]
        else:
            self.frame_width = frame_width  # 窗口宽度
            self.frame_height = frame_height  # 窗口高度
        self.center_x = self.frame_width / 2
        self.center_y = self.frame_height / 2
        self.main_curve_width = -1
        self.main_curve_height = -1
 
        self.frame_points = []  # 每帧动态点坐标
        self.frame_num = frame_num  # 帧数
        self.seed_num = seed_num  # 伪随机种子,设置以后除光晕外粒子相对位置不动(减少内部闪烁感)
        self.seed_points_num = seed_points_num  # 主图粒子数
        self.scale = scale  # 缩放比例
        self.wait = wait
 
    def curve_function(self, curve):
        curve_dict = {
            "heart": self.heart_function,
            "butterfly": self.butterfly_function,
            "star": self.star_function,
        }
        return curve_dict[curve]
 
    def heart_function(self, t, frame_idx=0, scale=5.20):
        """
        图形方程
        :param frame_idx: 帧的索引,根据帧数变换心形
        :param scale: 放大比例
        :param t: 参数
        :return: 坐标
        """
        trans = 3 - (1 + self.periodic_func(frame_idx, self.frame_num)) * 0.5  # 改变心形饱满度度的参数
 
        x = 15 * (np.sin(t) ** 3)
        t = np.where((pi < t) & (t < 2 * pi), 2 * pi - t, t)  # 翻转x > 0部分的图形到3、4象限
        y = -(14 * np.cos(t) - 4 * np.cos(2 * t) - 2 * np.cos(3 * t) - np.cos(trans * t))
 
        ign_area = 0.15
        center_ids = np.where((x > -ign_area) & (x < ign_area))
        if np.random.random() > 0.32:
            x, y = np.delete(x, center_ids), np.delete(y, center_ids)  # 删除稠密部分的扩散,为了美观
 
        # 放大
        x *= scale
        y *= scale
 
        # 移到画布中央
        x += self.center_x
        y += self.center_y
 
        # 原心形方程
        # x = 15 * (sin(t) ** 3)
        # y = -(14 * cos(t) - 4 * cos(2 * t) - 2 * cos(3 * t) - cos(3 * t))
        return x.astype(int), y.astype(int)
 
    def butterfly_function(self, t, frame_idx=0, scale=5.2):
        """
        图形函数
        :param frame_idx:
        :param scale: 放大比例
        :param t: 参数
        :return: 坐标
        """
        # 基础函数
        # t = t * pi
        p = np.exp(np.sin(t)) - 2.5 * np.cos(4 * t) + np.sin(t) ** 5
        x = 5 * p * np.cos(t)
        y = - 5 * p * np.sin(t)
 
        # 放大
        x *= scale
        y *= scale
 
        # 移到画布中央
        x += self.center_x
        y += self.center_y
 
        return x.astype(int), y.astype(int)
 
    def star_function(self, t, frame_idx=0, scale=5.2):
        n = self.n_star / self.m_star
        p = np.cos(pi / n) / np.cos(pi / n - (t % (2 * pi / n)))
 
        x = 15 * p * np.cos(t)
        y = 15 * p * np.sin(t)
 
        # 放大
        x *= scale
        y *= scale
 
        # 移到画布中央
        x += self.center_x
        y += self.center_y
 
        return x.astype(int), y.astype(int)
 
    def shrink(self, x, y, ratio, offset=1, p=0.5, dist_func="uniform"):
        """
        带随机位移的抖动
        :param x: 原x
        :param y: 原y
        :param ratio: 缩放比例
        :param p:
        :param offset:
        :return: 转换后的x,y坐标
        """
        x_ = (x - self.center_x)
        y_ = (y - self.center_y)
        force = 1 / ((x_ ** 2 + y_ ** 2) ** p + 1e-30)
 
        dx = ratio * force * x_
        dy = ratio * force * y_
 
        def d_offset(x):
            if dist_func == "uniform":
                return x + np.random.uniform(-offset, offset, size=x.shape)
            elif dist_func == "norm":
                return x + offset * np.random.normal(0, 1, size=x.shape)
 
        dx, dy = d_offset(dx), d_offset(dy)
 
        return x - dx, y - dy
 
    def scatter(self, x, y, alpha=0.75, beta=0.15):
        """
        随机内部扩散的坐标变换
        :param alpha: 扩散因子 - 松散
        :param x: 原x
        :param y: 原y
        :param beta: 扩散因子 - 距离
        :return: x,y 新坐标
        """
 
        ratio_x = - beta * np.log(np.random.random(x.shape) * alpha)
        ratio_y = - beta * np.log(np.random.random(y.shape) * alpha)
        dx = ratio_x * (x - self.center_x)
        dy = ratio_y * (y - self.center_y)
 
        return x - dx, y - dy
 
    def periodic_func(self, x, x_num):
        """
        跳动周期曲线
        :param p: 参数
        :return: y
        """
 
        # 可以尝试换其他的动态函数,达到更有力量的效果(贝塞尔?)
        def ori_func(t):
            return cos(t)
 
        func_period = 2 * pi
        return ori_func(x / x_num * func_period)
 
    def gen_points(self, points_num, frame_idx, shape_func):
        # 用周期函数计算得到一个因子,用到所有组成部件上,使得各个部分的变化周期一致
        cy = self.periodic_func(frame_idx, self.frame_num)
        ratio = 10 * cy
 
        # 图形
        period = 2 * pi * self.m_star if self.curve == "star" else 2 * pi
        seed_points = np.linspace(0, period, points_num)
        seed_x, seed_y = shape_func(seed_points, frame_idx, scale=self.scale)
        x, y = self.shrink(seed_x, seed_y, ratio, offset=2)
        curve_width, curve_height = int(x.max() - x.min()), int(y.max() - y.min())
        self.main_curve_width = max(self.main_curve_width, curve_width)
        self.main_curve_height = max(self.main_curve_height, curve_height)
        point_size = np.random.choice([1, 2], x.shape, replace=True, p=[0.5, 0.5])
        tag = np.ones_like(x)
 
        def delete_points(x_, y_, ign_area, ign_prop):
            ign_area = ign_area
            center_ids = np.where((x_ > self.center_x - ign_area) & (x_ < self.center_x + ign_area))
            center_ids = center_ids[0]
            np.random.shuffle(center_ids)
            del_num = round(len(center_ids) * ign_prop)
            del_ids = center_ids[:del_num]
            x_, y_ = np.delete(x_, del_ids), np.delete(y_, del_ids)  # 删除稠密部分的扩散,为了美观
            return x_, y_
 
        # 多层次扩散
        for idx, beta in enumerate(np.linspace(0.05, 0.2, 6)):
            alpha = 1 - beta
            x_, y_ = self.scatter(seed_x, seed_y, alpha, beta)
            x_, y_ = self.shrink(x_, y_, ratio, offset=round(beta * 15))
            x = np.concatenate((x, x_), 0)
            y = np.concatenate((y, y_), 0)
            p_size = np.random.choice([1, 2], x_.shape, replace=True, p=[0.55 + beta, 0.45 - beta])
            point_size = np.concatenate((point_size, p_size), 0)
            tag_ = np.ones_like(x_) * 2
            tag = np.concatenate((tag, tag_), 0)
 
        # 光晕
        halo_ratio = int(7 + 2 * abs(cy))  # 收缩比例随周期变化
 
        # 基础光晕
        x_, y_ = shape_func(seed_points, frame_idx, scale=self.scale + 0.9)
        x_1, y_1 = self.shrink(x_, y_, halo_ratio, offset=18, dist_func="uniform")
        x_1, y_1 = delete_points(x_1, y_1, 20, 0.5)
        x = np.concatenate((x, x_1), 0)
        y = np.concatenate((y, y_1), 0)
 
        # 炸裂感光晕
        halo_number = int(points_num * 0.6 + points_num * abs(cy))  # 光晕点数也周期变化
        seed_points = np.random.uniform(0, 2 * pi, halo_number)
        x_, y_ = shape_func(seed_points, frame_idx, scale=self.scale + 0.9)
        x_2, y_2 = self.shrink(x_, y_, halo_ratio, offset=int(6 + 15 * abs(cy)), dist_func="norm")
        x_2, y_2 = delete_points(x_2, y_2, 20, 0.5)
        x = np.concatenate((x, x_2), 0)
        y = np.concatenate((y, y_2), 0)
 
        # 膨胀光晕
        x_3, y_3 = shape_func(np.linspace(0, 2 * pi, int(points_num * .4)),
                                             frame_idx, scale=self.scale + 0.2)
        x_3, y_3 = self.shrink(x_3, y_3, ratio * 2, offset=6)
        x = np.concatenate((x, x_3), 0)
        y = np.concatenate((y, y_3), 0)
 
        halo_len = x_1.shape[0] + x_2.shape[0] + x_3.shape[0]
        p_size = np.random.choice([1, 2, 3], halo_len, replace=True, p=[0.7, 0.2, 0.1])
        point_size = np.concatenate((point_size, p_size), 0)
        tag_ = np.ones(halo_len) * 2 * 3
        tag = np.concatenate((tag, tag_), 0)
 
        x_y = np.around(np.stack([x, y], axis=1), 0)
        x, y = x_y[:, 0], x_y[:, 1]
        return x, y, point_size, tag
 
    def get_frames(self, shape_func):
        for frame_idx in range(self.frame_num):
            np.random.seed(self.seed_num)
            self.frame_points.append(self.gen_points(self.seed_points_num, frame_idx, shape_func))
 
        frames = []
 
        def add_points(frame, x, y, size, tag):
            highlight1 = np.array(self.highlight_points_color_1, dtype='uint8')
            highlight2 = np.array(self.highlight_points_color_2, dtype='uint8')
            base_col = np.array(self.base_color, dtype='uint8')
 
            x, y = x.astype(int), y.astype(int)
            frame[y, x] = base_col
 
            size_2 = np.int64(size == 2)
            frame[y, x + size_2] = base_col
            frame[y + size_2, x] = base_col
 
            size_3 = np.int64(size == 3)
            frame[y + size_3, x] = base_col
            frame[y - size_3, x] = base_col
            frame[y, x + size_3] = base_col
            frame[y, x - size_3] = base_col
            frame[y + size_3, x + size_3] = base_col
            frame[y - size_3, x - size_3] = base_col
            # frame[y - size_3, x + size_3] = color
            # frame[y + size_3, x - size_3] = color
 
            # 高光
            random_sample = np.random.choice([1, 0], size=tag.shape, p=[self.highlight_rate, 1 - self.highlight_rate])
 
            # tag2_size1 = np.int64((tag <= 2) & (size == 1) & (random_sample == 1))
            # frame[y * tag2_size1, x * tag2_size1] = highlight2
 
            tag2_size2 = np.int64((tag <= 2) & (size == 2) & (random_sample == 1))
            frame[y * tag2_size2, x * tag2_size2] = highlight1
            # frame[y * tag2_size2, (x + 1) * tag2_size2] = highlight2
            # frame[(y + 1) * tag2_size2, x * tag2_size2] = highlight2
            frame[(y + 1) * tag2_size2, (x + 1) * tag2_size2] = highlight2
 
        for x, y, size, tag in self.frame_points:
            frame = np.zeros([self.frame_height, self.frame_width, 3], dtype="uint8")
            add_points(frame, x, y, size, tag)
            frames.append(frame)
 
        return frames
 
    def draw(self, times=10):
        frames = self.get_frames(self.curve_function(self.curve))
 
        for i in range(times):
            for frame in frames:
                frame = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)
                if len(self.bg_imgs) > 0 and self.set_bg_imgs:
                    frame = cv2.addWeighted(self.bg_imgs[i % len(self.bg_imgs)], self.bg_weight, frame, self.curve_weight, 0)
                cv2.imshow(self.title, frame)
                cv2.waitKey(self.wait)
 
 
if __name__ == '__main__':
    import yaml
    settings = yaml.load(open("./settings.yaml", "r", encoding="utf-8"), Loader=yaml.FullLoader)
    if settings["wait"] == -1:
        settings["wait"] = int(settings["period_time"] / settings["frame_num"])
    del settings["period_time"]
    times = settings["times"]
    del settings["times"]
    heart = HeartSignal(seed_num=5201314, **settings)
    heart.draw(times)

其中也要到这个py文件的相同的文件夹里引入settings.yaml文件:

# 颜色:RGB三原色数值 0~255
# 设置高光时,尽量选择接近主色的颜色,看起来会和谐一点
 
# 视频里的蓝色调
#base_color: # 主色  默认玫瑰粉
#  - 30
#  - 100
#  - 100
#highlight_points_color_1: # 高光粒子色1 默认淡紫色
#  - 150
#  - 120
#  - 220
#highlight_points_color_2: # 高光粒子色2 默认淡粉色
#  - 128
#  - 140
#  - 140
 
base_color: # 主色  默认玫瑰粉
  - 228
  - 100
  - 100
highlight_points_color_1: # 高光粒子色1 默认淡紫色
  - 180
  - 87
  - 200
highlight_points_color_2: # 高光粒子色2 默认淡粉色
  - 228
  - 140
  - 140
 
period_time: 1000 * 2  # 周期时间,默认1.5s一个周期
times: 5 # 播放周期数,一个周期跳动1次
frame_num: 24  # 一个周期的生成帧数
wait: 60  # 每一帧停留时间, 设置太短可能造成闪屏,设置 -1 自动设置为 period_time / frame_num
seed_points_num: 2000  # 构成主图的种子粒子数,总粒子数是这个的8倍左右(包括散点和光晕)
highlight_rate: 0.2 # 高光粒子的比例
frame_width: 720  # 窗口宽度,单位像素,设置背景图片后失效
frame_height: 640  # 窗口高度,单位像素,设置背景图片后失效
scale: 9.1  # 主图缩放比例
curve: "butterfly"  # 图案类型:heart, butterfly, star
n_star: 7 # n-角型/星,如果curve设置成star才会生效,五角星:n-star:5, m-star:2
m_star: 3 # curve设置成star才会生效,n-角形 m-star都是1,n-角星 m-star大于1,比如 七角星:n-star:7, m-star:2 或 3
title: "Love Li Xun"  # 仅支持字母,中文乱码
background_img_dir: "src/center_imgs" # 这个目录放置背景图片,建议像素在400 X 400以上,否则可能报错,如果图片实在小,可以调整上面scale把爱心缩小
set_bg_imgs: false # true或false,设置false用默认黑背景
bg_img_scale: 0.6 # 0 - 1,背景图片缩放比例
bg_weight: 0.4 # 0 - 1,背景图片权重,可看做透明度吧
curve_weight: 1 # 同上
 
# ======================== 推荐参数: 直接复制数值替换上面对应参数 ==================================
# 蝴蝶,报错很可能是蝴蝶缩放大小超出窗口宽和高
# curve: "butterfly"
# frame_width: 800
# frame_height: 720
# scale: 60
# base_color: [100, 100, 228]
# highlight_points_color_1: [180, 87, 200]
# highlight_points_color_2: [228, 140, 140]

1698885945-d4360939645db61

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1161949.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

程序员用接单平台靠谱吗?浅谈一下十年程序员的看法

后疫情时代&#xff0c;经济下行&#xff0c;这年头社会上就业也越来越卷了&#xff0c;程序员人才市场也日趋饱和。不少人嗅到危险气息&#xff0c;已经开始谋求出路了! 咱们程序员的话&#xff0c;“兼职”"接单"也不是个新鲜的话题了。养家糊口也好、财富自由也罢…

优优嗨聚集团:医保新政来袭,乙类OTC、保健品或将退出医保舞台,影响几何?

近日&#xff0c;国家医保局发布征求意见稿&#xff0c;拟将乙类OTC&#xff08;非处方药&#xff09;和保健品从医保目录中移除。这一政策一旦实施&#xff0c;无疑将对广大参保人员和相关企业产生深远影响。本文将为您详细解析这一政策可能带来的影响&#xff0c;以及如何应对…

19.3 Boost Asio 多线程通信

多线程服务依赖于两个通用函数&#xff0c;首先boost::bind提供了一个高效的、简单的方法来创建函数对象和函数对象适配器&#xff0c;它的主要功能是提供了一种将函数和它的参数绑定到一起的方法&#xff0c;这种方法可以将具有参数的成员函数、普通函数以及函数对象转化为不带…

日常笔记工具搭档(Typora、Snipaste)

一、Typora 啥也不说了直接上图 Markdown语法 Typora免费版 提取码&#xff1a;av01 二维码&#xff1a; 1&#xff09;页面展示 2&#xff09;主题 3&#xff09;偏好设置 4&#xff09;Markdown语法设置偏好 5&#xff09;编辑器 6&#xff09;系统 二、Snipaste Snipaste…

中国电子云-隐私计算-云原生安全可信计算,物理-硬件-系统-云产品-云平台,数据安全防护

目录 联邦学习的架构思想 中国电子云-隐私计算-云原生安全 可信计算&#xff0c;物理-硬件-系统-云产品-云平台&#xff0c;数据安全防护 全栈国产信创的意义 1. 提升科技创新能力 2. 推动经济发展 3. 加强信息安全与自主可控 全栈国产信创的重要领域 1. 人工智能 2.…

Nginx简介,Nginx搭载负载均衡以及Nginx部署前端项目

目录 一. Nginx简介 Nginx的优点 二. Nginx搭载负载均衡 2.1 Nginx安装 2.1.1 安装依赖 2.1.2 解压nginx安装包 2.1.3 安装nginx 2.1.4 启动nginx服务 2.2 tomcat负载均衡 2.3 Nginx配置 三. Nginx前端部署 一. Nginx简介 NGINX&#xff08;读作&#xff1a;engi…

阿里云2023年双十一活动各云产品活动内容及优惠政策汇总

阿里云2023双十一活动各云产品有哪些新购和续费优惠政策&#xff1f;小编看了一下阿里云2023年的双十一活动&#xff0c;活动分为主会场和8个云产品分会场&#xff0c;涉及的云产品涵盖了云服务器、云数据库、云存储、云网络、大数据Al、云原生、云安全等几乎所有阿里云产品&am…

技能get-ps抠颜色一样的图

公司要插个小图片&#xff0c;从网上down下来的图片是不过是jpg的&#xff0c;背景不透明&#xff0c;这时候可以使用ps工具把这种同一颜色的内容扣下来。 操作步骤&#xff1a; 选择-色彩范围&#xff0c;然后用取样器取颜色&#xff0c;再调节拉条选取颜色范围&#xff0c;最…

客户收到样品后“消失”,怎么破?

对于大部分外贸人来说&#xff0c;谈客户几乎不是一次性谈成的&#xff0c;而是要进行多次的沟通。在沟通过程中难免会遇到各种问题&#xff0c;一些小问题容易解决&#xff0c;但有一些棘手的问题却不知该如何下手。 比如&#xff1a; ①客户收到样品后就“消失”&#xff0c…

某数据库为提升搜索效率,对某一整型字段构建二叉搜索树(BST)

声明&#xff1a;下面的方法不一定正确&#xff0c;个人学习过程中所写&#xff0c;并未做大量测试&#xff0c;仅供参考&#xff0c;应该有BUG&#xff0c;暂时不改了。 描述&#xff1a;某数据库为提升搜索效率&#xff0c;对某一整型字段构建二叉搜索树(BST)。每个结点包含…

07、vue : 无法加载文件 C:\Users\JH\AppData\Roaming\npm\vue.ps1,因为在此系统上禁止运行脚本。

目录 问题解决&#xff1a; 问题 vue : 无法加载文件 C:\Users\JH\AppData\Roaming\npm\vue.ps1&#xff0c;因为在此系统上禁止运行脚本。 在使用 VSCode 时&#xff0c;创建 Vue 项目报的错 创建不了 Vue 项目 解决&#xff1a; 因为在此系统上禁止运行该脚本&#xff0…

[ 云计算 | AWS 实践 ] 使用 Java 列出存储桶中的所有 AWS S3 对象

本文收录于【#云计算入门与实践 - AWS】专栏中&#xff0c;收录 AWS 入门与实践相关博文。 本文同步于个人公众号&#xff1a;【云计算洞察】 更多关于云计算技术内容敬请关注&#xff1a;CSDN【#云计算入门与实践 - AWS】专栏。 本系列已更新博文&#xff1a; [ 云计算 | …

利用工业视频AI分析,能否消除企业生产安全隐患?

讲个去年11月的案例&#xff0c;某家工厂发生火灾&#xff0c;直接导致38人死亡和2人受伤。然后在今年2月&#xff0c;某家新能源汽车公司发生机械伤害事故&#xff0c;导致1人死亡。4月&#xff0c;一家船厂发生生产安全事故&#xff0c;造成7人死亡和5人受伤。5月&#xff0c…

5.4 可靠传输的工作原理

思维导图&#xff1a; 5.4 可靠传输的工作原理 前言概述 TCP与IP层的关系&#xff1a;TCP负责发送报文段&#xff0c;而IP层负责传送这些报文段。IP层仅提供“尽最大努力服务”&#xff0c;本质上是不可靠的传输。TCP的责任&#xff1a;为了弥补IP层的不可靠性&#xff0c;TC…

springboot的请求与响应

一&#xff0c;简单参数 Get请求&#xff1a;只需要在postman中的Params参数与方法中的形参一致就可以Post请求与Get方法一致只需要在 如果参数名不一致--通过RequestParam中的value属性执行请求参数名 RequestParam(name "name",required false) //表示name参数不是…

安装VMware后无VMnet1和VMnet8网卡

问题描述 通过进入 按键盘&#xff08;WINR&#xff09;&#xff0c;输入cmd&#xff0c;进入管理员页面 输入ipconfig,没有vmnet1和vmnet8 进入电脑--->更改适配器&#xff08;也无vmnet1和vmnet8&#xff09; 一&#xff0c;解决方法1 直接还原vmware网络设置。 还原成…

WIN10专业版64位22H2正式版19045.3324 简体中文版、英文版

微软在面向 Win10 21H2/22H2 发布了累积更新 KB5029244 之外&#xff0c;在更新日志中也表示&#xff0c;也为包括 1809&#xff0c;1607 和 1507 在内的功能更新提供了累积更新。 IT之家在此附上 Win10 Build 19044.3324 和 Build 19045.3324 更新内容如下&#xff1a; 修复了…

【行云流水线实践】基于“OneBuild”方法对镜像进行快速装箱 | 京东云技术团队

在云原生领域&#xff0c;无论使用哪种编排调度平台&#xff0c;Kubernetes&#xff0c;DockerSwarm&#xff0c;OpenShift等&#xff0c;业务都需要基于镜像进行交付&#xff0c;我们在内部实践“Source-to-image”和链式构建&#xff0c;总而总结出“OneBuild”模式。 其核心…

HT3163 免电感滤波 音频功率放大器工作原理

HT3163是一款G效AB/D类音频功率放大器。在D类模式&#xff0c;18V供电、THDN10%条件下&#xff0c;能够持续提供40W/4Ω功率输出。在AB类模式&#xff0c;12V供电、THDN10%条件下&#xff0c;能够持续输出17W/4Ω功率。 HT3163具有防削顶失真&#xff08;ACF&#xff09;输出控…

第02章-变量与运算符

1 关键字 关键字&#xff1a;被Java语言赋予了特殊含义&#xff0c;用作专门用途的字符串&#xff08;或单词&#xff09;。如class、public、static、void等&#xff0c;这些单词都被Java定义好了&#xff0c;称为关键字。 特点&#xff1a;关键字都是小写字母&#xff1b;官…