自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

编程圈子-谢厂节的博客

编程入门知识

  • 博客(1204)
  • 资源 (11)
  • 收藏
  • 关注

原创 Three.JS教程4 threejs中的辅助类

Three.js 提供了一些辅助类(Helpers)以帮助我们更容易地调试、可视化场景中的元素。ArrowHelepr:创建箭头辅助器;AxisHelper: 创建坐标轴辅助器;BoxHelper: 创建包围盒辅助器;Box3Helper:创建可视化Box3的辅助器;CameraHelper:用于创建相机的辅助器;DirectionalLightHelper:创建方向光源;GridHelper:创建网格辅助器;PolarGridHelper:极坐标网格辅助器;

2024-01-22 11:05:41 1070

原创 Three.JS教程3 threejs中内置的更多几何体

胶囊几何体是一种有球形顶端和圆柱形部分组合的几何体。radiusTop: 胶囊体顶部的半径;radiusBottom: 胶囊体底部的半径;height: 胶囊体的总高度;radialSegments(径向分段数): 胶囊体周围的圆柱部分的分段数;heightSegments(高度分段数): 胶囊体的高度上的分段数;cappedTop(是否有顶部): 一个布尔值,指示是否有胶囊体的顶部;cappedBottom(是否有底部): 一个布尔值,指示是否有胶囊体的底部;

2024-01-19 13:41:21 967

原创 Three.JS教程2 几何体的创建与使用

顶点的位置是一个浮点数数组,其中每三个元素表示一个点的x、y和z坐标。

2024-01-18 10:47:10 951

原创 Three.JS教程1 环境搭建、场景与相机

Three.js 是一款基于JavaScript的开源3D图形库,它简化了在Web上创建复杂的3D场景和动画的过程。Three.js 由Ricardo Cabello(也称为mr.doob)于2010年创建,最初是为了填补WebGL技术在那个时候的不足而设计的。随着WebGL的普及和浏览器性能的提升,Three.js逐渐成为Web上3D图形编程的事实标准之一。官网地址: https://threejs.org/

2024-01-17 09:17:17 1337

原创 Nodejs 入门8 NeDB 轻量级的Node.js 数据库

常用的sqlite轻量级数据库,nodejs在windows环境下安装配置有时候会比较麻烦,很难顺利安装。Nedb(Node Embedded Database)在一些情况下可以替代sqlite,特别适用于小型项目和快速原型开发。本文将介绍Nedb的基本概念、特性和使用方法,以帮助大家更好地了解和利用这个便捷的工具。github官网Nedb是一个基于Node.js的嵌入式数据库,它在内存中存储数据,同时也支持将数据持久化到磁盘。

2024-01-12 10:11:13 2214

原创 Linux学习19 在Ubuntu命令行下使用新硬盘

文件配置的挂载信息会被系统持久化保存,这意味着它们会在系统重启后继续有效。这有助于确保在系统重新启动后,所有必要的文件系统都会被正确挂载。这个文件定义了系统启动时哪些设备(如硬盘分区、光盘、网络文件系统等)应该被挂载到哪些挂载点,并指定了挂载时使用的选项。文件定义了系统在启动时应该自动挂载的所有设备和分区。这确保了在系统启动时,特定设备会被正确挂载到指定的挂载点上。当然,选择其它目录作为挂载点也是可以的。运行以下命令将硬盘挂载到刚创建的挂载点上(假设硬盘为。列出的硬盘信息里,找到要挂载的硬盘。

2024-01-09 16:22:05 1207

原创 ESP-C3入门24. 使用中断监控GPIO口

创建一个用于处理 GPIO 中断的函数。// 处理中断事件的代码这里的IRAM_ATTR属性用于将中断处理函数存储在内部 RAM 中,以减少延迟。

2023-09-05 09:46:25 822 4

原创 ESP-C3入门23. I2C读写外部存储器

I2C 是一种串行同步半双工通信协议,总线上可以同时挂载多个主机和从机。I2C 总线由串行数据线 (SDA) 和串行时钟线 (SCL) 线构成。这些线都需要上拉电阻。ESP32-C3 上通常包含两个 I2C 控制器(I2C0 和 I2C1),它们可以分别用于不同的设备或任务。I2C 控制器数量ESP32-C3 通常配备了两个独立的 I2C 控制器,分别命名为 I2C0 和 I2C1。引脚分配每个 I2C 控制器都需要两个引脚:SDA(数据线)和 SCL(时钟线)。

2023-09-05 08:26:33 478 3

原创 Clion 使用ffmpeg 学习1 开发环境配置

在视频处理和多媒体应用程序开发中,FFmpeg 是一个强大的开源工具,它提供了处理音频和视频的丰富功能。CLion 是一款受欢迎的跨平台集成开发环境(IDE),它提供了强大的代码编辑和调试工具。通过官方文档 : https://www.ffmpeg.org/documentation.html 可以查看更多FFmpeg的操作方法。选择合适的版本下载。我这里下载的是 ffmpeg-master-latest-win64-gpl-shared。本文章介绍在CLion下配置FFmpeg开发环境的方法。

2023-09-02 12:24:51 1593

原创 ESP-C3入门22. 基于VSCODE使用内置JTAG调试程序

在ESP32中,内置了一个用于JTAG调试的特殊程序,称为“ESP32 JTAG调试引导模式”。JTAG(Joint Test Action Group)是一种用于测试和调试电路板的标准接口。在嵌入式系统开发中,JTAG可以用于芯片的调试、程序下载、固件更新等操作。ESP32的JTAG调试引导模式允许通过JTAG接口连接到芯片,以便进行硬件级别的调试和分析。

2023-09-01 14:20:08 1095

原创 Kotlin入门1. 语法基础

Kotlin是一种静态编程语言,由JetBrains开发。它被设计为与Java兼容,并且可以在Java平台上运行。Kotlin支持现代编程语言的许多特性,如函数式编程、对象导向编程和元编程。这使得Kotlin能够方便地与Java代码混编,并且可以在没有JVM(Java虚拟机)的设备上运行。Kotlin可以编译成Java字节码,因此可以在Java虚拟机上运行。此外,Kotlin也可以编译成JavaScript,使得它可以在浏览器中运行。这使得Kotlin成为一个适用于各种平台的多平台语言。

2023-08-30 19:52:08 178

原创 Electron学习3 使用serialport操作串口

本文将使用 nodejs 的 SerialPort 包来实现串口通讯功能。Node SerialPort 是一个 JavaScript 库,用于连接到在 NodeJS 和 Electron 中工作的串行端口,以下是准备环境:本文操作过程来自:https://girishjoshi.io/post/access-serialport-from-electron-application-and-creating-gui-for-micropython-repl-on-esp8266/文档地址:https:

2023-08-23 08:43:44 2729

原创 Electron学习2 使用Electron-vue和Vuetify UI库

Electron-Vue 是一个使用 Vue.js 构建跨平台桌面应用程序的框架。它基于 Electron,一个使用 JavaScript、HTML 和 CSS 构建跨平台桌面应用程序的开源库。Electron-Vue 结合了 Vue.js 的灵活性和 Electron 的跨平台能力,使得开发桌面应用程序变得更加简单和高效。使用 Vue.js 构建应用程序:Electron-Vue 提供了基于 Vue.js 的开发体验,你可以使用 Vue.js 的语法和组件系统来构建桌面应用程序。

2023-08-22 10:59:04 1259

原创 Arduino 入门学习笔记12 读写外置EEPROM

外置I2C接口的EEPROM是一种常用的非易失性存储器,通过I2C总线与微控制器或其他设备进行通信。它通常用于存储持久性数据,如配置设置、日志、校准数据等。以下是一些常用的外置I2C接口的EEPROM型号以及它们的特点:24C系列:Microchip的24C系列EEPROM是一些常见的I2C接口EEPROM型号。它们分为24C01到24C512等不同容量的型号,容量从128字节到64K字节不等。这些EEPROM设备在I2C总线上占用7位或8位的设备地址,并且通常具有多个页,可实现更高的写入速度。

2023-08-18 11:09:45 1898

原创 Arduino 入门学习笔记11 读写内置EEPROM

Arduino的内置EEPROM(Electrically Erasable Programmable Read-Only Memory)是一种用于存储持久性数据的非易失性存储器,它嵌入在Arduino微控制器芯片内部。与外部EEPROM不同,Arduino的内置EEPROM通常具有较小的存储容量,通常在几百字节到几千字节之间,具体取决于Arduino的型号和芯片。以下是关于Arduino的内置EEPROM的重要信息:容量:不同型号的Arduino板在芯片上都有内置EEPROM。

2023-08-18 09:52:50 1786

原创 ESP-C3入门21. I2C接口点亮1306驱动的OLED屏

地址:Espressif/ssd1306 是 Espressif Systems 开发的用于 SSD1306 驱动芯片的库,用于在 ESP32 和 ESP8266 上控制 SSD1306 型号的 OLED 显示屏。这个库提供了一组函数和接口,使得开发者可以在 ESP-IDF 框架中方便地控制和管理这种类型的 OLED 显示屏。OLED 控制:该库允许你控制 SSD1306 驱动的 OLED 显示屏,包括初始化、绘制图像、显示文本等。

2023-08-17 20:06:37 911

原创 Esp8266学习7. 点亮JMD0.96C-1 OLED屏

ESP8266具有一个I2C控制器,通常称为I2C主机。这个I2C控制器可以用来连接各种I2C外设,如传感器、显示屏等。SDA(Serial Data Line):通信数据线SCL(Serial Clock Line):时钟线这两个引脚的位置可以根据具体的ESP8266开发板而有所不同。引入Wire库:在Arduino代码中引入Wire库,该库提供了与I2C通信相关的函数。

2023-08-17 16:43:25 1299

原创 Arduino 入门学习笔记10 使用I2C的OLED屏幕

本次试验采用的OLED屏是使用I2C接口通讯的0.96寸屏,采用 SSD1306 驱动,有4个引脚。单色, 128x64像素。SSD1306是一款单片CMOS OLED/PLED驱动器,具有有机/聚合物发光控制器二极管点阵图形显示系统。这款芯片专为共阴极OLED面板设计,具有内置对比度控制器、显示RAM和振荡器,可以减少外部元件的数量和功耗。其分辨率为128x64,适用于许多小型便携式应用,如手机副显示屏、MP3播放器和计算器等。

2023-08-17 11:01:46 4364 1

原创 Electron学习1 安装环境与第一个程序

Electron是一个用于构建跨平台桌面应用程序的开源库。它使用HTML、CSS和JavaScript等技术,通过将Web技术打包为原生应用程序,使得开发者能够创建出具有本地操作系统特性的软件。Electron使用Chromium作为渲染引擎,并允许开发者使用Node.js来访问底层系统资源。本文将介绍electron开发环境配置。windows10一款编辑器软件,如vscode。

2023-08-09 08:25:12 850

原创 ESP-C3入门20. CentOS开发环境及Jenkins流水线

ESP-IDF 需要python3.7以上版本,如果yum仓库版本比较低,则需要手动下载安装。意思是系统中缺少 Jenkins 软件包的公钥,因此无法验证软件包的真实性。cmake 升到 3.16以上。bash要升到 4 以上。

2023-07-25 19:08:13 524

原创 YOLO学习笔记1. YOLOV1的基本概念

YOLO(You Only Look Once)是一种流行的实时目标检测算法,由Joseph Redmon和Ali Farhadi等人开发。YOLO作为目标检测算法,旨在识别图像中出现的物体以及它们的位置。与其他目标检测算法不同的是,YOLO将整个图像看作一个整体,并使用单个CNN(卷积神经网络)模型直接预测图像中所有物体的类别和位置。这使得YOLO具有更快的速度和更高的实时性,而不需要额外的后处理步骤。YOLO算法通过在图像上滑动网格来实现目标检测,每个单元格负责预测一组边界框和类别概率。

2023-07-15 16:10:24 810

原创 ESP-C3入门19. RSA算法加密、解密的实现

官方文档地址:ESP-IDFv5里集成了 Mbed TLSv3.1.0版本。实现RSA加密与解密主要是以下步骤:生成RSA密钥对:RSA加密算法需要一个公钥和一个私钥。在ESP-IDF提供的加密库中有生成RSA密钥对的函数。本文重点放在加密、解密,生成RSA密钥对的过程本文不作介绍。加密数据:要加密数据,需要使用公钥对数据进行加密。我们使用mbedtls_rsa_pkcs1_encrypt()函数来实现RSA加密。这个函数接受明文数据、公钥和输出缓冲区作为参数,并将加密后的数据存储在输出缓冲区中。

2023-06-20 14:42:17 699

原创 Uni-APP iOS环境打自定义调试基座

主要操作步骤参考官方文档:https://ask.dcloud.net.cn/article/152有少量区别。准备好苹果开发者账号(过程略)。

2023-04-11 07:55:31 1835 2

原创 Esp8266学习6. ArduinoOTA的使用

ESP8266 提供了 OTA(Over-The-Air)升级功能,可以通过 Wi-Fi 网络升级设备,而无需连接 USB 线进行编程。ESP8266使用的是ArduinoOTA库,开源地址:占用更多的存储空间;升级需要使用IDE,且电脑要和开发板在同一个网络内;使用的网络端口不能充当普通串口用来查看日志等作用。但由于它对OTA功能进行了高度的封装,使用起来极为简单,升级时省去了物理连线的麻烦。

2023-04-08 11:16:34 609

原创 深度学习13. CNN经典网络 VGG16

VGG(Visual Geometry Group)是一个视觉几何组在2014年提出的深度卷积神经网络架构。VGG在2014年ImageNet图像分类竞赛亚军,定位竞赛冠军;VGG网络采用连续的小卷积核(3x3)和池化层构建深度神经网络,网络深度可以达到16层或19层,其中VGG16和VGG19最为著名。VGG16和VGG19网络架构非常相似,都由多个卷积层和池化层交替堆叠而成,最后使用全连接层进行分类。

2023-04-06 09:58:45 1519

原创 ESP-C3入门18. 低功耗蓝牙SPP Server端功能测试

GATT是一种基于属性的协议,它定义了一组属性,这些属性可以用于描述设备的服务和特征。

2023-04-06 08:21:31 929 1

原创 ESP-C3入门17. 低功耗蓝牙GATT Server

GATT (Generic Attribute Profile) 是蓝牙低功耗 (Bluetooth Low Energy, BLE) 协议栈中的一部分,它定义了 BLE 设备之间交换数据的格式和规范。GATT 是基于属性 (attribute) 和服务 (service) 的概念,通过将数据封装在属性中,从而实现设备之间的通信。在 GATT 中,一个服务表示一个特定的功能,一个服务可以包含多个属性。每个属性都有一个唯一的标识符 (UUID),可以用来识别它们。属性可以是只读的 (Read),也可以是可写的

2023-03-31 15:26:49 1268

原创 深度学习12. CNN经典网络 AlexNet处理ImageNet

该层主要作用是提取输入图像的特征。卷积核:11 X 11步长:4填充:2输入通道数:3输出通道数:48224−112∗24154224−112∗2/4154。

2023-03-28 13:26:53 892

原创 ESP-C3入门16. 低功耗蓝牙广播

0x00:广播标志0x01:不完整的16位服务UUID列表0x02:完整的16位服务UUID列表0x03:不完整的32位服务UUID列表0x04:完整的32位服务UUID列表0x05:不完整的128位服务UUID列表0x06:完整的128位服务UUID列表0x07:本地名称0x08:TX功率级别0x09:蓝牙名称0x0A:简单配对的Hash C0x0B:简单配对的随机数R0x0C:设备ID0x0D:服务数据0x0E:制造商特定数据。

2023-03-28 08:21:44 967

原创 数字电路3. SR 触发器

常见的触发器有SR触发器、D触发器、JK触发器和T触发器等。其中一个门的输出被连接到另一个门的输入,同时该门的输入通过另一个门的输出进行反馈。在时序逻辑电路中,SR触发器可以被用来存储上一个时钟周期的状态,从而实现状态机的设计。在SR触发器中,输入信号可以从一个锁存器传输到另一个锁存器,实现了数据的存储和传输功能。SR触发器是由两个互补的锁存器组成的,其中一个锁存器的输出连接到另一个锁存器的输入,反之亦然。SR触发器是一种经典的数字电路元件,它的作用是将输入的信号转化为一个稳定的输出。

2023-03-22 09:12:38 1923 1

原创 ESP-C3入门15. SmartConfig配网测试

ESP32主要有以下配网方式:采用组播/广播方式,将WIFI信息编码到IEEE802.11底层通讯帧实现配网。配网时将ESP32置于AP热点模式,手机连接此热点建立通讯,把WIFI账号和密码发给模块。微信提出的一种配网方式,支持通过微信小程序配网。通过低功耗蓝牙来传输WIFI账号与密码实现配网。ESP32的example有完整的SmartConfig demo,可以直接创建项目使用。配网主要执行以下流程:(2)注册事件处理函数为 WIFI_EVENT、IP_EVENT 和 SC_EVENT 注册事件处理

2023-03-21 13:38:26 645

原创 数字电路2. OC门、OD门、三态门

与OC门类似,OD门的输出端也可以被多个门并联连接,形成开关电路,控制外部器件的工作。OD门(Open Drain Gate)是数字电路中的一种逻辑门,它的输出端可以被拉低,但无法被拉高,只能在高阻态时不输出电信号。一般来说,使能端高电平的最小值为2V,也就是当使能端电压高于2V时,三态门处于使能状态,使能端内部有一个反向器,这时不可以传输数据。与普通门电路只有两种状态(高电平输出和低电平输出)不同,三态门的高阻态输出可以在电路中实现高阻抗状态,使得它可以连接多个门电路或器件而不会干扰其它部分的工作。

2023-03-20 10:43:40 5287

原创 Esp8266学习5. 红外信号收发实验

ESP8266 支持通过红外接收器和红外LED进行红外收发功能。ESP8266的红外收发功能需要借助外部库,常用的库有IRremoteESP8266、IRremote、IRLib2等。IRremoteESP8266库是专门为ESP8266芯片设计的红外收发库,它支持多种协议,包括NEC、Sony、RC5、RC6等,还支持学习和发送红外信号。另外IRremote库和IRLib2库也是常用的红外收发库,但这两个库不是专门为ESP8266设计的,需要进行相应的适配。data 要发送的数据。

2023-03-18 18:50:15 1755 1

原创 深度学习11. CNN经典网络 LeNet-5实现CIFAR-10

CIFAR-10是一个常用的图像分类数据集,由10类共计60,000张32x32大小的彩色图像组成,每类包含6,000张图像。这些图像被平均分为了5个训练批次和1个测试批次,每个批次包含10,000张图像。CIFAR-10数据集中的10个类别分别为:飞机、汽车、鸟类、猫、鹿、狗、青蛙、马、船和卡车。相比之下,MNIST是一个手写数字分类数据集,由10个数字(0-9)共计60,000个训练样本和10,000个测试样本组成,每个样本是一个28x28的灰度图像。

2023-03-18 13:55:27 1073

原创 模电学习12. NE555 方波信号发生器

此时电容器开始充电,当电压高于控制电压时(通常为1/3 Vcc),输出引脚跳变为高电平,并保持一段时间,电容器继续放电,直到电压降至控制电压以下,输出引脚才恢复为低电平。NE555在单稳态模式下使用RC电路产生延时信号,该模式下的NE555主要是基于模拟电路的工作原理。下面电路使用了LM317EE作为线性稳压电路,NE555的4脚和8脚是它的两个电源引脚,分别用于输入正电源(Vcc)和负电源(GND)。当4脚和8脚短接后接入稳压电源时,可以保证NE555的电源稳定,从而保证它的工作稳定和可靠。

2023-03-17 10:40:02 5293

原创 深度学习10. CNN经典网络 LeNet-5实现MNIST

LeNet-5是一个经典的卷积神经网络模型,1998年被提出,论文题目是 “Gradient-Based Learning Applied to Document Recognition” ,作者为 Yann LeCun, Léon Bottou, Yoshua Bengio, and Patrick Haffner。LeNet-5是一个用于手写数字识别的深度神经网络模型,由两个卷积层和三个全连接层组成。LeNet-5是深度神经网络的开创者之一,对后来的深度学习算法发展产生了重要的影响。

2023-03-16 14:18:03 1172

原创 深度学习9. 全连接及Dropout概念

全连接层是神经网络中的一种常见的层类型,也称为密集连接层(Dense Layer)或者全连接层(Fully Connected Layer)。全连接层可以将输入特征与每个神经元之间的连接权重进行矩阵乘法和偏置加法操作,从而得到输出结果。在全连接层中,每个神经元都与上一层的所有神经元相连,每个输入特征都与每个神经元之间都存在一定的连接权重。在训练过程中,神经网络通过反向传播算法来优化每个神经元的权重和偏置,从而使得输出结果能够更好地拟合训练数据。

2023-03-16 09:55:38 754 1

原创 深度学习8.池化的概念

池化 (Pooling) 用来降低卷积神经网络(CNN)或循环神经网络(RNN)中的特征图(Feature Map)的维度。在卷积神经网络中,池化操作通常紧跟在卷积操作之后,用于降低特征图的空间大小。池化操作的基本思想是将特征图划分为若干个子区域(一般为矩形),并对每个子区域进行统计汇总。池化操作的方式可以有很多种,比如最大池化(Max Pooling)、平均池化(Average Pooling)等。其中,最大池化操作会选取每个子区域内的最大值作为输出,而平均池化操作则会计算每个子区域内的平均值作为输出。

2023-03-15 22:16:15 1236

原创 深度学习7. 卷积的概念

深度学习7. 卷积的概念一、卷积的概念二、神经网络中的卷积1. 神经网络卷积概念2. 卷积核3. 卷积核大小三、实现一个简单的卷积功能1. 卷积函数2. 边缘检测卷积核调用示例3. 高斯卷积核示例四、PyTorch计算卷积1. 生成单通道图像调用卷积(1)生成单通道图像 `torch.randn(1, 1, 28, 28)`(2)卷积层2. 加载灰度图像进行卷积操作3. 对彩色图片卷积,输出1通道4. 输出3通道的卷积操作一、卷积的概念卷积来源于英文的Convolution,其中Con是积分,vol是

2023-03-15 09:24:17 581

原创 数字电路1. 逻辑门电路及常见门电路实现

逻辑门电路是一种电路设计,用于处理数字信号(仅包括0和1)。它们使用逻辑门来执行不同的逻辑操作,如与门、或门、非门、异或门等,这些门基于布尔代数。逻辑门电路通常使用晶体管、集成电路或其他电子元件实现。逻辑门电路可以用于数字电路、计算机、通信和控制系统等领域。在数字电路中,逻辑门电路用于处理和操作数字信号,从而实现不同的功能和任务。在计算机中,逻辑门电路构成了计算机的基本组成部分,用于执行算法和程序。在通信和控制系统中,逻辑门电路用于解码、编码、调制、解调等操作。

2023-03-14 10:56:35 2309

adb驱动解决重启问题

adb.exe 新版本手机连接adb可能会出现反复重启的现象,该版本可以解决此问题。解压后把目录加入到path即可。

2018-06-28

sbt-launch

在windows下的启动包

2017-01-23

倒计时功能的PPT

具有倒计时功能的PPT

2016-11-24

Psycopy For win64

Python连接PostgreSQL时要安装的库。Windows 64Bit操作系统使用。

2016-07-26

tcpdump for android arm

适合android使用的tcpdump抓包工具,使用方法http://blog.csdn.net/xundh/article/details/46010707

2016-01-07

php redis驱动for win

php 下的 redis驱动,64/32bit windows,配合博客: http://blog.csdn.net/xundh/article/details/42437091#5752006

2015-12-29

C#操作JSON LitJSON

C#操作JSON LitJSON,适用Framework的版本比较广。操作方法简便。

2015-09-16

msnodelsql

nodejs使用sqlserver数据库的包

2015-09-16

mysql-connector-net-6.3.9.rar

mysql与c#的连接库6.4版本后可能有bug,连接数据库可能会提示:out of sync with server。这个老版本可以正常使用。

2015-06-13

Sqlite3+VB

非原创,感谢原作者。VB下使用Sqlite3,网上代码很多,但要筛选使用。这个测试可用。因为博客没法上传文件,所以上传在这里。

2015-02-06

使用html5实现的多边形展示百分比

使用html5实现的多边形展示数字百分比,以替换柱状图的展示方式。

2014-10-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除