当前位置: 首页 > news >正文

计算机图形学【直线和圆的生成算法】

在计算机图形学中,光栅化是将几何图元转换成一个光栅图像(像素或点)在屏幕上输出的过程。光栅化可实现图形变为二维图像,其目的是将连续的几何图形转换为离散的像素点。光栅化算法的基本原理包括两个主要步骤:首先,确定窗口坐标中的哪些整数网格区域被图元占据;其次,为每个这样的区域分配颜色和深度值。这个过程涉及到将模型每个顶点的颜色信息计算出来,然后基于这些信息,遍历屏幕上的像素点,为每个像素点进行颜色分配。由于屏幕上的像素点坐标是整数,而图形顶点的坐标可能是小数,故光栅化是一个近似过程。

【直线生成算法】

数值微分分析 DDADigital Differential Analyzer)算法是一种线段扫描转换算法,用于计算机图形学中生成直线。该算法通过将直线划分为若干个等间隔的小线段,然后在每个小线段中选择一个像素点进行绘制,从而近似地绘制出直线。 DDA 算法基于直线的微分方程采用“增量”的思想通过计算直线的斜率,从起点开始,逐步增加 X Y 轴方向上的增量,从而生成直线上的每个点。主要步骤为: 

将直线表示为满足微分方程 dy/dx=k 的解

当|k|<=1时,Δx=1,Δy=k

当|k|>1时,Δy=1,Δx=1/k

【圆生成算法】

中点圆算法的基本思想是利用圆的对称性,从圆的第一象限开始计算,逐步绘制出圆的所有象限的点。该算法通过一个决策参数来判断下一个点的位置。Bresenham圆算法是对中点圆算法的改进,使用整数运算来提高效率。其基本思路与中点算法相似,但在决策参数的更新上有所不同。算法步骤:

1、初始化圆心 (x_center, y_center) 和半径 r。

2、从 (r, 0) 开始,设置初始决策参数 p = 1 - r。

3、遍历 y,直到 x 大于 y:

     ① 绘制当前点及其对称点;

     ② 更新决策参数:

              如果 p < 0,则下一个点的 y 坐标不变,x 坐标增加。

              如果 p >= 0,则 y 坐标增加,x 坐标减少。

【Matlab

DDA 的源代码:

%%主函数
function main_DDAclcclear;DDA(50,60,100,200,'r')%%DDA算法:x1、y1是起点坐标,x2、y2是终点坐标
function DDA(x1,y1,x2,y2,color)		dx=(x2-x1);dy=(y2-y1);%取dx和dy绝对值的最大值,确保算法的每一步都能在x和y轴上均匀地移动step=max(abs(dx),abs(dy));deltax=dx/step;deltay=dy/step;x=x1;y=y1;hold onfor i=1:stepscatter(round(x),round(y),'.',color)    	  %绘出当前点x=x+deltax;                            		  %更新xy=y+deltay;                             	  %更新yendgrid minor									      %添加网格hold off

以上代码的运行结果:

使用 Bresenham 算法画圆的源代码:

function Bresenham_Circle(x_center, y_center, radius)% 创建一个新的图形窗口figure;hold on;axis equal;grid on;% Bresenham 圆算法x = radius;y = 0;p = 1 - radius; % 初始决策参数while x > y% 绘制对称点plot(x_center + x, y_center + y, 'r.'); % 第一象限plot(x_center - x, y_center + y, 'r.'); % 第二象限plot(x_center + x, y_center - y, 'r.'); % 第四象限plot(x_center - x, y_center - y, 'r.'); % 第三象限plot(x_center + y, y_center + x, 'r.'); % 第一象限plot(x_center - y, y_center + x, 'r.'); % 第二象限plot(x_center + y, y_center - x, 'r.'); % 第四象限plot(x_center - y, y_center - x, 'r.'); % 第三象限y = y + 1;% 更新决策参数if p <= 0p = p + 2 * y + 1;elsex = x - 1;p = p + 2 * y - 2 * x + 1;endend% 设置图形区域和标题title('Bresenham Circle Drawing');xlabel('X-axis');ylabel('Y-axis');xlim([x_center - radius - 1, x_center + radius + 1]);ylim([y_center - radius - 1, y_center + radius + 1]);hold off;
end% 主程序
x_center = input('输入圆心 x 坐标:');
y_center = input('输入圆心 y 坐标:');
radius = input('输入圆的半径:');
Bresenham_Circle(x_center, y_center, radius);

以上代码的运行结果:

PS:其实用 matlab 可以走捷径使用 plot。

【Python】

直线生成算法

* 本人使用了 PyCharm,也可以安装配置其他实验环境使用:

根据所使用的操作系统,下载适配于系统版本的 Anaconda 安装文件,并按提示进行安装。Anaconda 安装文件下载地址:https://www.anaconda.com/download

对 DDA 的详细代码步骤:

1)导入相关工具库

打开 PyCharm 开发环境,输入下图中的代码导入相关工具库(如有报错可根据提示进行排查),本实验后续过程中的代码编写与运行可在 PyCharm 中进行。

import pylab as pl
from matplotlib.pyplot import title
from matplotlib.ticker import MultipleLocator
import matplotlib.patches as patches

注:matplotlib模块需下载后使用。

2)写初始化函数

# 初始化函数,用于设置图形的基本属性
def init(ax, width):
    # 设置坐标轴范围
    ax.axis([0, width, 0, width])
    # 设置主刻度标签
    majorLocator = MultipleLocator(1)  # 每个单位刻度
    ax.xaxis.set_major_locator(majorLocator)
    ax.yaxis.set_major_locator(majorLocator)
    ax.grid(True)  # 显示网格

3)编写像素绘制函数

# 像素绘制函数,将计算出的点添加到图形中
def add_pixel(x, y, ax):
    x = round(x)  # 将 x 坐标四舍五入到最近的整数
    y = round(y)  # 将 y 坐标四舍五入到最近的整数
    # 在指定位置绘制绿色的方形像素
    ax.add_patch(patches.Rectangle((x - 0.5, y - 0.5), 1, 1, color='g'))
    ax.plot(x, y, 'r.')  # 绘制红色点以标识像素位置

4)编程实现算法

# 主程序,执行 DDA 直线生成算法
if __name__ == '__main__':
    # 从用户输入读取直线的两个端点和画布边长
    x0, y0, x1, y1, w = map(int, input('输入直线两点和画布边长(x0,y0,x1,y1,w):').split(','))
    # 确保 x0 <= x1,若不满足则交换
    if x0 > x1:
        x0, x1 = x1, x0
        y0, y1 = y1, y0

    # 创建子图并设置属性
    bx = pl.subplot(111, aspect='equal', title='DDA')
    bx.plot([x0, x1], [y0, y1], '-k')  # 绘制直线的理想线段(黑色)
    init(bx, w)  # 初始化图形

    # 计算增量
    delta_x = x1 - x0  # x 方向的增量
    delta_y = y1 - y0  # y 方向的增量
    d = 0  # 决策变量初始化

    # 计算斜率
    if delta_x == 0:  # 垂直线的特殊情况
        k = 999999999
    else:
        k = delta_y / delta_x  # 斜率 k

    # 初始化起点
    x = round(x0)
    y = round(y0)

    # 根据斜率的不同进行不同的处理
    if k > -1 and k < 1:  # 斜率绝对值小于1
        while True:
            if x > x1:  # 当 x 超过终点时退出
                break
            add_pixel(x, y, bx)  # 绘制当前像素
            x = x + 1  # x 增加1
            y = y + k  # y 根据斜率 k 增加

    elif k >= 1:  # 斜率绝对值大于等于1
        while True:
            if y > y1:  # 当 y 超过终点时退出
                break
            add_pixel(x, y, bx)  # 绘制当前像素
            y = y + 1  # y 增加1
            x = x + 1 / k  # x 根据斜率 k 增加

    else:  # 斜率绝对值大于1且小于0
        while True:
            if y < y1:  # 当 y 小于终点时退出
                break
            add_pixel(x, y, bx)  # 绘制当前像素
            y = y - 1  # y 减少1
            x = x - 1 / k  # x 根据斜率 k 减少


    pl.show()  # 显示绘制的图形

5)运行代码,按提示输入直线的起点、终点等参数,然后观察并记录实验结果

斜率k等于 1

斜率k大1

斜率k小于 1

圆生成算法

1)中点圆算法(Midpoint Circle Algorithm)

① 源代码:

import pylab as pl
from matplotlib.ticker import MultipleLocator
import matplotlib.patches as patches

# 初始化函数,用于设置坐标轴和网格
def init(ax, width):
    # 设置坐标轴范围
    ax.axis([0, width, 0, width])

    # 设置主刻度标签,每个单位刻度
    majorLocator = MultipleLocator(1)
    ax.xaxis.set_major_locator(majorLocator)
    ax.yaxis.set_major_locator(majorLocator)
    ax.grid(True)  # 显示网格

# 像素绘制函数,将计算出的圆的点添加到图形中
def add_pixel(x, y, ax):
    # 绘制绿色的方形像素
    ax.add_patch(patches.Rectangle((x - 0.5, y - 0.5), 1, 1, color='g'))
    ax.plot(x, y, 'r.')  # 用红色点标识像素位置

# 中点圆算法实现函数
def draw_circle(x_center, y_center, radius, ax):
    x = radius  # 从半径开始
    y = 0      # y 坐标初始化为 0
    p = 1 - radius  # 初始决策参数

    # 逐步绘制圆的点
    while x > y:
        # 绘制当前点及其对称点
        add_pixel(x_center + x, y_center + y, ax)  # 第一象限
        add_pixel(x_center - x, y_center + y, ax)  # 第二象限
        add_pixel(x_center + x, y_center - y, ax)  # 第四象限
        add_pixel(x_center - x, y_center - y, ax)  # 第三象限
        add_pixel(x_center + y, y_center + x, ax)  # 第一象限
        add_pixel(x_center - y, y_center + x, ax)  # 第二象限
        add_pixel(x_center + y, y_center - x, ax)  # 第四象限
        add_pixel(x_center - y, y_center - x, ax)  # 第三象限

        y += 1  # y 坐标增加

        # 更新决策参数
        if p <= 0:
            p = p + 2 * y + 1  # 决策参数更新
        else:
            x -= 1  # x 坐标减少
            p = p + 2 * y - 2 * x + 1  # 决策参数更新

# 主程序入口
if __name__ == '__main__':
    # 输入圆心坐标、半径和画布边长
    x_center, y_center, radius, w = map(int, input('输入圆心坐标、半径和画布边长(格式:x,y,r,w):').split(','))
    # 创建子图,并设置绘图属性
    bx = pl.subplot(111, aspect='equal', title='Circle Drawing')
    init(bx, w)  # 初始化图形
    draw_circle(x_center, y_center, radius, bx)  # 调用绘制函数
    pl.show()  # 显示绘制的图形

② 运行结果:

2)Bresenham圆算法

① 源代码:

import pylab as pl
from matplotlib.patches import Circle

# 像素绘制函数
def add_pixel(x, y, ax):
    ax.add_patch(Circle((x, y), 0.5, color='g'))

# Bresenham 圆算法
def draw_circle(x_center, y_center, radius, ax):
    x = radius
    y = 0
    p = 1 - radius  # 初始决策参数

    while x > y:
        # 绘制对称点
        for dx, dy in [(x, y), (-x, y), (x, -y), (-x, -y),
                       (y, x), (-y, x), (y, -x), (-y, -x)]:
            add_pixel(x_center + dx, y_center + dy, ax)

        y += 1

        # 更新决策参数
        if p <= 0:
            p = p + 2 * y + 1
        else:
            x -= 1
            p = p + 2 * y - 2 * x + 1

# 主程序
if __name__ == '__main__':
    x_center, y_center, radius, w = map(int, input('输入圆心坐标、半径和画布边长(格式:x,y,r,w):').split(','))

    bx = pl.subplot(111, aspect='equal', title='Bresenham Circle Drawing')
    bx.axis([0, w, 0, w])
    draw_circle(x_center, y_center, radius, bx)

    pl.grid(True)
    pl.show()

② 运行结果:

相关文章:

计算机图形学【直线和圆的生成算法】

在计算机图形学中&#xff0c;光栅化是将几何图元转换成一个光栅图像&#xff08;像素或点&#xff09;在屏幕上输出的过程。光栅化可实现图形变为二维图像&#xff0c;其目的是将连续的几何图形转换为离散的像素点。光栅化算法的基本原理包括两个主要步骤&#xff1a;首先&…...

OpenAI 故障复盘 - 阿里云容器服务与可观测产品如何保障大规模 K8s 集群稳定性

本文作者&#xff1a; 容器服务团队&#xff1a;刘佳旭、冯诗淳 可观测团队&#xff1a;竺夏栋、麻嘉豪、隋吉智 一、前言 Kubernetes(K8s)架构已经是当今 IT 架构的主流与事实标准&#xff08;CNCF Survey[1]&#xff09;。随着承接的业务规模越来越大&#xff0c;用户也在使…...

【深度学习】Pytorch:加载自定义数据集

本教程将使用 flower_photos 数据集演示如何在 PyTorch 中加载和导入自定义数据集。该数据集包含不同花种的图像&#xff0c;每种花的图像存储在以花名命名的子文件夹中。我们将深入讲解每个函数和对象的使用方法&#xff0c;使读者能够推广应用到其他数据集任务中。 flower_ph…...

vue js实现时钟以及刻度效果

2025.01.08今天我学习如何用js实现时钟样式&#xff0c;效果如下&#xff1a; 一、html代码如下&#xff1a; <template><!--圆圈--><div class"notice_border"><div class"notice_position notice_name_class" v-for"item in …...

js基础---注释与结束符

JavaScript 基础&#xff1a;注释与结束符 注释 注释是代码中用于解释说明的部分&#xff0c;不会被执行&#xff0c;主要有两种类型&#xff1a; 单行注释 符号&#xff1a;//作用&#xff1a;从符号开始到该行末尾的所有内容都会被忽略&#xff0c;不会被执行。示例代码&…...

from pytorch3d import _C问题

离线安装pytorch3d后&#xff0c;先测试&#xff1a; import pytorch3d 没问题后&#xff0c;再测试&#xff1a; from pytorch3d import _C 单独测试会出现&#xff1a; ImportError: libc10.so: cannot open shared object file: No such file or directory 或者类似不…...

PHP进阶-在Ubuntu上搭建LAMP环境教程

本文将为您提供一个在Ubuntu服务器上搭建LAMP&#xff08;Linux, Apache, MySQL, PHP&#xff09;环境的完整指南。通过本文&#xff0c;您将学习如何安装和配置Apache、MySQL、PHP&#xff0c;并将您的PHP项目部署到服务器上。本文适用于Ubuntu 20.04及更高版本。 一、系统更新…...

SQLite 命令

关于《SQLite 命令》的文章&#xff0c;我可以为您提供一个概要。SQLite是一个轻量级的嵌入式关系数据库管理系统&#xff0c;它以单个文件的形式存储数据&#xff0c;非常适合用于不需要传统数据库服务器的场景。SQLite3的命令行工具&#xff08;sqlite3.exe&#xff09;是一个…...

ASP.NET Core 实现微服务 - Consul 配置中心

这一次我们继续介绍微服务相关组件配置中心的使用方法。本来打算介绍下携程开源的重型配置中心框架 apollo 但是体系实在是太过于庞大&#xff0c;还是让我爱不起来。因为前面我们已经介绍了使用Consul 做为服务注册发现的组件 &#xff0c;那么干脆继续使用 Consul 来作为配置…...

自定义Java注解及其应用

上一篇博客&#xff1a;Java注解 写在前面&#xff1a;大家好&#xff01;我是晴空๓。如果博客中有不足或者的错误的地方欢迎在评论区或者私信我指正&#xff0c;感谢大家的不吝赐教。我的唯一博客更新地址是&#xff1a;https://ac-fun.blog.csdn.net/。非常感谢大家的支持。…...

回归预测 | MATLAB实GRU多输入单输出回归预测

回归预测 | MATLAB实GRU多输入单输出回归预测 目录 回归预测 | MATLAB实GRU多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 回归预测 | MATLAB实GRU多输入单输出回归预测。使用GRU作为RNN的一种变体来处理时间序列数据。GRU相比传统的RNN有较好的记…...

ISP流程--去马赛克详解

前言 本期我们将深入讨论ISP流程中的去马赛克处理。我们熟知&#xff0c;彩色图像由一个个像元组成&#xff0c;每个像元又由红、绿、蓝&#xff08;RGB&#xff09;三通道构成。而相机传感器只能感知光的强度&#xff0c;无法直接感知光谱信息&#xff0c;即只有亮暗而没有颜色…...

用户注册模块用户校验(头条项目-05)

1 用户注册后端逻辑 1.1 接收参数 username request.POST.get(username) password request.POST.get(password) phone request.POST.get(phone) 1.2 校验参数 前端校验过的后端也要校验&#xff0c;后端的校验和前端的校验是⼀致的 # 判断参数是否⻬全 # 判断⽤户名是否…...

【大数据】Apache Superset:可视化开源架构

Apache Superset是什么 Apache Superset 是一个开源的现代化数据可视化和数据探索平台&#xff0c;主要用于帮助用户以交互式的方式分析和展示数据。有不少丰富的可视化组件&#xff0c;可以将数据从多种数据源&#xff08;如 SQL 数据库、数据仓库、NoSQL 数据库等&#xff0…...

如何搭建 Vue.js 开源项目的 CI/CD 流水线

网罗开发 &#xff08;小红书、快手、视频号同名&#xff09; 大家好&#xff0c;我是 展菲&#xff0c;目前在上市企业从事人工智能项目研发管理工作&#xff0c;平时热衷于分享各种编程领域的软硬技能知识以及前沿技术&#xff0c;包括iOS、前端、Harmony OS、Java、Python等…...

OCR文字识别—基于PP-OCR模型实现ONNX C++推理部署

概述 PaddleOCR 是一款基于 PaddlePaddle 深度学习平台的开源 OCR 工具。PP-OCR是PaddleOCR自研的实用的超轻量OCR系统。它是一个两阶段的OCR系统&#xff0c;其中文本检测算法选用DB&#xff0c;文本识别算法选用CRNN&#xff0c;并在检测和识别模块之间添加文本方向分类器&a…...

国产3D CAD将逐步取代国外软件

在工业软件的关键领域&#xff0c;计算机辅助设计&#xff08;CAD&#xff09;软件对于制造业的重要性不言而喻。近年来&#xff0c;国产 CAD 的发展态势迅猛&#xff0c;展现出巨大的潜力与机遇&#xff0c;正逐步改变着 CAD 市场长期由国外软件主导的格局。 国产CAD发展现状 …...

GoLand 如何集成 Netty?

目录 1.回答问题&#xff1a; 2.以下是实现类似 Netty 功能的步骤&#xff1a; 2.1 实现基本的网络通信功能&#xff1a; 3. 使用 Go 的第三方库实现 Netty 功能 4.实现类似 Netty 的事件循环&#xff1a; 5. 运用场景&#xff1a; 1.回答问题&#xff1a; 要在 GoLand 中…...

C++中 为什么要把基类指针指向子类对象?

为什么要把基类指针指向子类对象&#xff1f; 1&#xff09;实现多态性 动态绑定行为&#xff1a;通过基类指针指向子类对象&#xff0c;可以利用 C 的多态机制。当基类中有虚函数&#xff0c;并且子类重写了这些虚函数时&#xff0c;通过基类指针调用虚函数&#xff0c;实际调…...

2025年第三届“华数杯”国际赛A题解题思路与代码(Matlab版)

游泳竞技策略优化模型代码详解&#xff08;MATLAB版&#xff09; 第一题&#xff1a;速度优化模型 本部分使用MATLAB实现游泳运动员在不同距离比赛中的速度分配策略优化。 1. 模型概述 模型包含三个主要文件&#xff1a; speed_optimization.m: 核心优化类plot_speeds.m: …...

做一个 简单的Django 《股票自选助手》显示 用akshare 库(A股数据获取)

图&#xff1a; 股票自选助手 这是一个基于 Django 开发的 A 股自选股票信息查看系统。系统使用 akshare 库获取实时股票数据&#xff0c;支持添加、删除和更新股票信息。 功能特点 支持添加自选股票实时显示股票价格和涨跌幅一键更新所有股票数据支持删除不需要的股票使用中…...

深入探索 ScottPlot.WPF:在 Windows 桌面应用中绘制精美图表的利器

一、ScottPlot.WPF 简介 ScottPlot.WPF 是基于 ScottPlot 绘图库专门为 Windows Presentation Foundation (WPF) 框架量身定制的强大绘图组件。它无缝集成到 WPF 应用程序中,为开发者提供了一种简洁、高效的方式来可视化数据,无论是科学研究中的实验数据展示、金融领域的行情…...

Spring bean的生命周期和扩展

接AnnotationConfigApplicationContext流程看实例化的beanPostProcessor-CSDN博客&#xff0c;以具体实例看bean生命周期的一些执行阶段 bean生命周期流程 生命周期扩展处理说明实例化:createBeanInstance 构造方法&#xff0c; 如Autowired的构造方法注入依赖bean 如UserSer…...

【Docker】docker compose 安装 Redis Stack

注&#xff1a;整理不易&#xff0c;请不要吝啬你的赞和收藏。 前文 Redis Stack 什么是&#xff1f; 简单来说&#xff0c;Redis Stack 是增强版的 Redis &#xff0c;它在传统的 Redis 数据库基础上增加了一些高级功能和模块&#xff0c;以支持更多的使用场景和需求。Redis…...

Life Long Learning(李宏毅)机器学习 2023 Spring HW14 (Boss Baseline)

1. 终身学习简介 神经网络的典型应用场景是,我们有一个固定的数据集,在其上训练并获得模型参数,然后将模型应用于特定任务而无需进一步更改模型参数。 然而,在许多实际工程应用中,常见的情况是系统可以不断地获取新数据,例如 Web 应用程序中的新用户数据或自动驾驶中的…...

JavaEE之线程池

前面我们了解了多个任务可以通过创建多个线程去处理&#xff0c;达到节约时间的效果&#xff0c;但是每一次的线程创建和销毁也是会消耗计算机资源的&#xff0c;那么我们是否可以将线程进阶一下&#xff0c;让消耗计算机的资源尽可能缩小呢&#xff1f;线程池可以达到此效果&a…...

错误修改系列---基于RNN模型的心脏病预测(pytorch实现)

前言 前几天发布了pytorch实现&#xff0c;TensorFlow实现为&#xff1a;基于RNN模型的心脏病预测(tensorflow实现)&#xff0c;但是一处繁琐地方 一处错误&#xff0c;这篇文章进行修改&#xff0c;修改效果还是好了不少&#xff1b;源文章为&#xff1a;基于RNN模型的心脏病…...

修改之前的代码使得利用设备树文件和Platform总线设备驱动实现对多个LED的驱动【只是假想对LED进行驱动,并没有实际的硬件操作】

引言 在下面这篇博文中&#xff1a; 利用Linux的Platform总线设备驱动实现对多个LED的驱动【只是假想对LED进行驱动,并没有实际的硬件操作】 我们利用Platform总线设备驱动的思想实现了对多个LED的驱动。 Platform总线设备驱动以及其它的总线设备驱动都将驱动分成了三个部分…...

从CentOS到龙蜥:企业级Linux迁移实践记录(龙蜥开局)

引言&#xff1a; 在我们之前的文章中&#xff0c;我们详细探讨了从CentOS迁移到龙蜥操作系统的基本过程和考虑因素。今天&#xff0c;我们将继续这个系列&#xff0c;重点关注龙蜥系统的实际应用——特别是常用软件的安装和配置。 龙蜥操作系统&#xff08;OpenAnolis&#…...

多云架构,JuiceFS 如何实现一致性与低延迟的数据分发

随着大模型的普及&#xff0c;GPU 算力成为稀缺资源&#xff0c;单一数据中心或云区域的 GPU 资源常常难以满足用户的全面需求。同时&#xff0c;跨地域团队的协作需求也推动了企业在不同云平台之间调度数据和计算任务。多云架构正逐渐成为一种趋势&#xff0c;然而该架构下的数…...

Jenkins持续集成与交付安装配置

Jenkins 是一款开源的持续集成&#xff08;CI&#xff09;和持续交付&#xff08;CD&#xff09;工具&#xff0c;它主要用于自动化软件的构建、测试和部署流程。为项目持续集成与交付功能强大的应用。下面我们来介绍下它的安装与配置。 环境准备 更新系统组件&#xff08;这…...

十大排序简介

十大排序简介 一、排序分类二、排序思路1&#xff0e;冒泡排序&#xff08;Bubble Sort&#xff09;2&#xff0e;选择排序&#xff08;Selection Sort&#xff09;3&#xff0e;插入排序&#xff08;Insertion Sort&#xff09;4&#xff0e;希尔排序&#xff08;Shell Sort&a…...

uniapp小程序中隐藏顶部导航栏和指定某页面去掉顶部导航栏小程序

uniappvue3开发小程序过程中隐藏顶部导航栏和指定某页面去掉顶部导航栏方法 在page.json中 "globalStyle": {"navigationStyle":"custom",}, 如果是指定某个页面关闭顶部导航栏&#xff0c;在style中添加"navigationStyle": "cus…...

echarts:dataZoom属性横向滚动条拖拽不生效

问&#xff1a; 拖拽的过程中&#xff0c;第一次向右拖拽正常&#xff0c;然后就报错&#xff1a; echarts报错&#xff1a; var pointerOption pointerShapeBuilder[axisPointerType](axis,pixeValue,otherExtent),(axis,pixeValue,otherExtent)下划线红色报错&#xff1a;…...

【Leetcode 热题 100】739. 每日温度

问题背景 给定一个整数数组 t e m p e r a t u r e s temperatures temperatures&#xff0c;表示每天的温度&#xff0c;返回一个数组 a n s w e r answer answer&#xff0c;其中 a n s w e r [ i ] answer[i] answer[i] 是指对于第 i i i 天&#xff0c;下一个更高温度…...

R数据分析:多分类问题预测模型的ROC做法及解释

有同学做了个多分类的预测模型,结局有三个类别,做的模型包括多分类逻辑回归、随机森林和决策树,多分类逻辑回归是用ROC曲线并报告AUC作为模型评估的,后面两种模型报告了混淆矩阵,审稿人就提出要统一模型评估指标。那么肯定是统一成ROC了,刚好借这个机会给大家讲讲ROC在多…...

如何用 SSH 访问 QNX 虚拟机

QNX 虚拟机默认是开启 SSH 服务的&#xff0c;如果要用 SSH 访问 QNX 虚拟机&#xff0c;就需要知道虚拟机的 IP 地址&#xff0c;用户和密码。本文我们来看看如何获取这些参数。 1. 启动虚拟机 启动过程很慢&#xff0c;请耐心等待。 2. 查看 IP 地址 等待 IDE 连接到虚拟机。…...

交响曲-24-3-单细胞CNV分析及聚类

CNV概述 小于1kb是常见的插入、移位、缺失等的变异 人体内包含<10% 的正常CNV&#xff0c;我们的染色体数是两倍体&#xff0c;正常情况下&#xff0c;只有一条染色体表达&#xff0c;另一条沉默&#xff0c;当表达的那条染色体发生CNV之后&#xff0c;表达数量就会成倍增加…...

java远程调试debug

文章目录 首先被调试的服务配置idea 中配置远程调试连接上被调试服务打断点开始调试 首先被调试的服务配置 被调试的 java 服务需要开启允许被远程调试的配置&#xff0c;具体就是启动脚本中&#xff0c;加上允许被远程调试以及相应端口 # 针对JDK15.-1.8 -agentlib:jdwptran…...

操作系统之系统调用

系统调用 从上文简介得知&#xff0c;操作系统是计算机硬件和软件之间的桥梁&#xff0c;通过管理计算机软件和硬件资源&#xff0c;最终为我们用户提供服务。就如同一个管家帮助我们对CPU&#xff08;进程&#xff09;的管理、内存的管理、设备的管理、文件的管理。而我们如何…...

【docker】exec /entrypoint.sh: no such file or directory

dockerfile生成的image 报错内容&#xff1a; exec /entrypoint.sh: no such file or directory查看文件正常在此路径&#xff0c;但是就是报错没找到。 可能是因为sh文件的换行符使用了win的。...

CAPL概述与环境搭建

CAPL概述与环境搭建 目录 CAPL概述与环境搭建1. CAPL简介与应用领域1.1 CAPL简介1.2 CAPL的应用领域 2. CANoe/CANalyzer 安装与配置2.1 CANoe/CANalyzer 简介2.2 安装CANoe/CANalyzer2.2.1 系统要求2.2.2 安装步骤 2.3 配置CANoe/CANalyzer2.3.1 配置CAN通道2.3.2 配置CAPL节点…...

ML-Agents:智能体(三)

注&#xff1a;本文章为官方文档翻译&#xff0c;如有侵权行为请联系作者删除 Agent - Unity ML-Agents Toolkit–原文链接> ML-Agents&#xff1a;智能体&#xff08;一&#xff09; ML-Agents&#xff1a;智能体&#xff08;二&#xff09; ML-Agents&#xff1a;智能体&a…...

【harbor】离线安装2.9.0-arm64架构服务制作和升级部署

执行: .prepare 【作用就是产生一些配置信息 和docker-compose.yaml文件&#xff0c;然后docker-compose发布docker】 harbor官网地址&#xff1a;Harbor 参考文档可以看这里&#xff1a;部署 harbor 2.10.1 arm64 - 简书。 前提环境准备&#xff1a; 安装docker 和 docker…...

可视化-Visualization

可视化-Visualization 1.Introduction Visualization in Open CASCADE Technology is based on the separation of: on the one hand – the data which stores the geometry and topology of the entities you want to display and select, andon the other hand – its pr…...

完整化安装kubesphere,ks-jenkins的状态一直为init

错误描述&#xff1a; 打印日志&#xff1a; kubectl describe pod ks-jenkins-7fcff7857b-gh4g5 -n kubesphere-devops-system 日志描述如下&#xff1a; Events: Type Reason Age From Message ---- ------ ---- …...

halcon三维点云数据处理(十)locate_cylinder_3d

目录 一、locate_cylinder_3d例程代码二、gen_binocular_rectification_map函数三、binocular_disparity函数四、自定义函数select_best_candidates五、自定义函数remove_shadowed_regions 一、locate_cylinder_3d例程代码 1、读取或者创建3D形状模型&#xff0c; 2、根据双目…...

【CSS】设置滚动条样式

文章目录 基本语法用法案例 基本语法 在CSS中&#xff0c;可以使用 ::-webkit-scrollbar 和相关伪元素来为滚动条设置样式&#xff0c;但请注意这些伪元素是非标准的&#xff0c;主要用于WebKit内核浏览器&#xff08;如Chrome、Safari&#xff09;。 ::-webkit-scrollbar CSS …...

一个运行在浏览器中的开源Web操作系统Puter本地部署与远程访问

文章目录 前言1.关于Puter2.本地部署Puter3.Puter简单使用4. 安装内网穿透5.配置puter公网地址6. 配置固定公网地址 &#x1f4a1; 推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【点击跳转到网站…...

支持selenium的chrome driver更新到131.0.6778.264

最近chrome释放新版本&#xff1a;131.0.6778.264 如果运行selenium自动化测试出现以下问题&#xff0c;是需要升级chromedriver才可以解决的。 selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only s…...