用boost::geometry模块自定义多边形的测试程序

C/C++ 专栏收录该内容
¥59.90 ¥99.00
128篇文章

用boost::geometry模块自定义多边形的测试程序

在进行图形计算时,自定义多边形是一个非常有用的工具。使用boost::geometry模块可以方便的定义和处理各种几何图形。

下面是一个通过boost::geometry模块自定义多边形并计算其面积的示例程序。我们将定义一个三角形,然后计算它的面积。

#include <iostream>
#include <vector>
#include <boost/geometry.hpp>
#include <boost/geometry/geometries/polygon.hpp>
#include <boost/geometry/geometries/register/point.hpp>
#include <boost/geometry/geometries/register/ring.hpp>

namespace bg = boost::geometry;

struct Point {
    double x;
    double y;
};

BOOST_GEOMETRY_REGISTER_POINT_2D(Point, double, bg::cs::cartesian, x, y);

typedef bg::model::polygon<Point> Polygon;

int main()
{
    std::vector<Point> points = {
  
  {0, 0}, {10, 0}, {5, 15}, {0, 0}};
    Polygon po
使用boost::geometry::split_rings函数拆分多边形环的示例程序 使用boost::geometry::split_rings函数,我们可以轻松地将一个多边形环拆分成多个环,方便地进行后续处理。接着,我们使用boost::geometry::split_rings函数将这个多边形环拆分成多个环,并输出拆分后的结果。我们可以使用boost::geometry::split_rings函数将一个多边形环(ring)拆分成多个环。从输出结果可以看出,boost::geometry::split_rings函数成功地将多边形环拆分成了两个环。 阅读详情

相关推荐

自定义坐标系示例 - boost::geometry模块

本文提供了一个简单的示例,展示了如何定义自定义坐标系类型,并在boost::geometry中使用它们。在本文中,我们将介绍如何使用boost::geometry模块来自定义坐标系,并提供相应的源代码示例。然后,我们使用boost::geometry库中的distance函数计算了这两个点之间的距离,并将结果打印到控制台。首先,我们需要定义一个自定义的坐标系类型。在boost::geometry中,我们可以使用BOOST_GEOMETRY_REGISTER_POINT_2D宏来注册自定义的坐标系类型。

CyberJolt的博客 294

使用示例:boost::geometry::coordinate_type的测试程序

boost::geometry::coordinate_type是Boost.Geometry库中提供的一个对坐标类型进行访问的工具。它允许我们访问表示几何对象的容器中的单个点的坐标的类型,并进行一些运算或更改。它包含了三个参数:我们定义的坐标点类型,坐标点的类型(这里是double),坐标系(这里是笛卡尔坐标系),以及坐标点中的成员变量(这里是x和y)。之后,我们使用set函数来改变点的坐标,并再次打印输出新的坐标。现在,我们可以使用coordinate_type函数来访问点的坐标类型,并对其进行操作。

CodeMaven的博客 224

boost::geometry模块变换多边形的测试程序

boost::geometry模块变换多边形的测试程序实现功能C++实现代码 实现功能 boost::geometry模块变换多边形的测试程序 C++实现代码 #include <boost/geometry/geometry.hpp> #include <boost/geometry/geometries/point_xy.hpp> #include <boost/geometry/geometries/polygon.hpp> #include <boost/g

希望我的博客,能帮上你解决学习中工作中所遇到的问题 641

使用boost::geometry模块进行多边形变换的测试程序(C/C++)

以下是一个使用boost::geometry模块进行多边形变换的测试程序,展示了如何使用boost::geometry库来执行各种多边形变换操作,如平移、旋转和缩放。boost::geometry是一个功能强大的C++库,提供了许多几何计算和操作的功能,包括多边形处理。在示例中,我们将多边形在x轴上缩放为原来的2倍,在y轴上缩放为原来的0.5倍。然后,我们打印缩放后的多边形的顶点坐标。通过上述示例程序,我们展示了如何使用boost::geometry库进行多边形的平移、旋转和缩放变换。

JieLun_C的博客 282

使用boost::geometry模块实现递归多边形线性区域的测试程序

在本文中,我们将使用boost::geometry模块来实现一个递归多边形线性区域的测试程序。通过使用boost::geometry模块,我们可以轻松地实现递归多边形的生成和操作。递归多边形的构造方式是通过将初始多边形不断分割,并在每个分割的多边形上再次应用相同的分割操作。对象来存储生成的递归多边形。然后,我们可以输出生成的递归多边形的顶点坐标。在我们的测试程序中,我们将使用boost::geometry的点和多边形类型。函数,将分割后的左右多边形作为输入,并将递归层数减1,以生成更小层次的递归多边形。

TechRoar的博客 208

boost::geometry模块实现递归多边形线性区域的测试程序

boost::geometry模块实现递归多边形线性区域的测试程序实现功能C++实现代码 实现功能 boost::geometry模块实现递归多边形线性区域的测试程序 C++实现代码 #if defined(_MSC_VER) # pragma warning( disable : 4244 ) # pragma warning( disable : 4267 ) #endif #include <fstream> #include <sstream> #include <

希望我的博客,能帮上你解决学习中工作中所遇到的问题 535

Boost.Geometry模块实现递归多边形线性区域的测试

然后,我们使用 Boost.Geometry 模块提供的 intersection 函数计算多边形和线性区域的交集,并将结果保存到 result 变量中。因此,如何高效而准确地处理多边形是一个非常重要的问题。Boost.Geometry 是 Boost 库中的一个模块,提供了一组用于几何计算的算法和数据结构,包括点、向量、线段、多边形等基本几何对象,以及用于计算距离、交点、包围盒等算法。综上所述,本文介绍了如何使用 Boost.Geometry 模块实现递归多边形线性区域的测试程序,并提供了相应的源代码。

CodeSpark的博客 248

使用boost::geometry计算几何形状交集的测试程序

在进行计算几何学相关的开发或研究中,求解两个几何形状之间的交集是一个常见的问题。而Boost库中的Geometry模块提供了intersection函数,可以非常方便地求解两个形状之间的交集。在这段代码中,我们首先需要使用BOOST_GEOMETRY_REGISTER_POINT_2D_GET_SET宏将点类型注册到Boost.Geometry库中。接着,我们定义了一个简单的polygon类型,并使用read_wkt函数解析WKT格式的字符串来定义两个多边形。首先需要安装Boost库。

CyberByte的博客 786

使用Boost.Geometry库的point类型的测试程序

Boost.Geometry是一个功能强大的C++库,用于处理几何计算和操作。它提供了一组强大的几何算法和数据结构,可以处理各种几何对象,如点、线、多边形、圆等。其中,boost::geometry::model::point是用于表示点的数据类型之一。本文将介绍如何使用boost::geometry::model::point类型,并给出一个简单的测试程序。在Boost.Geometry库中,boost::geometry::model::point是表示二维或三维点的数据类型。

DevPulse的博客 257

使用boost::geometry::closing_iterator的测试程序

Boost.Geometry是一个开源库,提供了许多用于处理几何数据的功能。其中,boost::geometry::closing_iterator是一个迭代器,用于关闭一个几何图形。本文将介绍如何使用boost::geometry::closing_iterator,并提供一个测试程序的源代码。测试程序的功能是读取一系列的坐标点,构建一个多边形,并使用closing_iterator将多边形封闭。0101。

2301_79331328的博客 136

使用boost::geometry::within的测试程序

boost::geometry::within是Boost.Geometry库中的一个函数,用于确定一个几何对象是否完全包含在另一个几何对象内部。本文将展示一个测试程序,演示如何使用boost::geometry::within函数进行几何对象的包含性判断。通过将要判断的几何对象作为第一个参数,将被包含的几何对象作为第二个参数,就可以得到一个布尔值,表示是否包含。最后,我们输出判断结果,如果点在线段内部或多边形内部,则输出"Yes",否则输出"No"。首先,我们需要定义一些几何对象,例如点、线段和多边形。

TechBurst的博客 366

使用Boost库中的geometry模块创建三维点的测试程序

Boost库是一个十分强大的C++库,其中的geometry模块包含了许多常用的计算几何算法和工具,可以方便地进行空间的操作与计算。在这篇文章中,我们将通过使用geometry模块中的d3::point_xyz数据结构,来创建一个简单的三维点的测试程序。在geometry模块中,三维点被定义为d3::point_xyz模板类的实例,其模板参数为点坐标的数据类型。在以上代码中,我们使用了浮点型作为点的坐标数据类型,使用3作为点的维数,使用笛卡尔坐标系(cartesian)作为点所在的坐标系。

DevScribe的博客 321

使用boost::geometry::transform_variant进行几何变换的测试程序

首先,我们在程序中包含了相关的头文件,并定义了用于表示二维点、线串和多边形的类型别名。你可以根据自己的需求,修改输入的几何对象和变换策略,以实现不同的几何变换效果。函数,我们成功地对输入的线串和多边形进行了平移和缩放变换,并得到了相应的变换结果。执行了平移变换,将其每个点的坐标都增加了(1, 1)。在这个示例程序中,我们使用了Boost.Geometry库中的。执行了缩放变换,将其每个点的坐标都乘以了2。,输出了变换后的线串和多边形的坐标序列。,用于存储变换后的线串和多边形对象。策略,指定了缩放的因子。

2301_79326588的博客 200

使用Boost.Geometry模块的model::polygon进行测试的程序编程

在上述代码中,我们使用boost::geometry::model::polygon类创建了一个空的多边形对象。然后,我们使用boost::geometry::append函数添加了四个点到多边形中,这样我们就得到了一个矩形。接下来,我们使用boost::geometry::is_valid函数检查多边形是否有效,如果无效则输出错误信息并返回。最后,我们使用boost::geometry::area函数计算多边形的面积,并将结果输出到控制台。其中,model::polygon是一个用于表示多边形的类。

CyberByte的博客 348

使用boost::geometry::densify的测试程序

这就是使用boost::geometry::densify函数的简单示例。通过调整添加点的最大距离,您可以控制增加的点的数量和多边形的平滑度。在本文中,我们将介绍如何使用Boost.Geometry库中的boost::geometry::densify函数。接下来,我们将创建一个简单的C++程序来测试boost::geometry::densify函数。输出结果显示,在原始多边形的每个线段上,我们添加了额外的点,从而增加了多边形的分辨率。使用boost::geometry::densify的测试程序。

CyberBladeX的博客 184

boost::geometry::detail::overlay::traverse 用法的测试程序

函数进行多边形的交集和并集计算。通过使用 Boost.Geometry 库,我们可以轻松地处理各种几何对象的计算,包括点、线、多边形等。boost::geometry::detail::overlay::traverse 用法的测试程序演示了如何使用 Boost.Geometry 库中的。Boost.Geometry 是一个功能强大的几何计算库,提供了许多几何算法和数据结构,可以方便地处理各种几何对象。在这个测试程序中,我们首先定义了点和线串的类型,使用 Boost.Geometry 提供的数据结构。

ByteWhisper的博客 119

使用Boost.Geometry库的within策略的一个测试程序

其中一个非常有用的功能是within策略,它可以快速确定一个点是否位于另一个对象(如多边形或线段)内部。总结一下,Boost.Geometry库的within策略是一种非常有用的功能,可以快速地确定一个点是否在一个对象内部。最后,我们使用within策略来检查该点是否位于多边形内部,并打印结果。本文将介绍如何使用Boost.Geometry库的within策略,以及如何编写一个测试程序来验证其正确性。接下来,我们定义一个多边形对象和一个点对象,然后使用within策略来检查该点是否位于多边形内部。

2301_79326588的博客 406

Unity中实现FairyGUI弹窗背景模糊的3种方法对比(附完整代码)

本文详细对比了Unity中实现FairyGUI弹窗背景模糊的3种方法,包括FairyGUI原生滤镜方案、多摄像机混合渲染方案和渲染纹理动态混合方案。每种方法均附有完整代码示例,帮助开发者根据项目需求选择最佳方案,实现镜头虚化模糊效果,提升游戏UI的视觉沉浸感。

ff678的博客 231

Reality Capture控制点修复/合并模型

通过增加控制点/修改对齐设置参数来修复模型被分为两个部分的解决方法

草履虫建模的博客 5239

2025反爬虫革命:京东商品接口的动态指纹认证与量子加密传输方案

在2025年,全球电商API接口面临的安全威胁呈现指数级增长:京东构建了基于硬件、软件、行为三重维度的设备指纹模型:京东构建了基于BB84+E91混合协议的量子密钥中继网络:

FB13713612741的博客 1648

保姆级教程:用Docker快速部署mpromonet/webrtc-streamer实现WebRTC直播(附常见问题解决)

本文提供了一份详细的Docker部署mpromonet/webrtc-streamer的实战指南,帮助用户快速搭建WebRTC直播服务。内容涵盖从环境准备、基础部署到进阶配置与性能调优的全过程,并针对容器网络、视频流配置、跨网访问等常见问题提供了解决方案,旨在实现低延迟的流媒体传输。

dell8的博客 177

国密套件ECC-SM2-SM4-CBC-SM3和ECDHE-SM2-WITH-SM4-SM3

双方交换各自的公钥,最后A计算点(x1,y1) = d1Q2,B计算点(x2,y2) = d2Q1,由于椭圆曲线上是可以满足乘法交换和结合律,所以 d1Q2 = d1d2G = d2d1G = d2Q1 ,因此双方的 x 坐标是一样的,所以它是共享密钥,也就是会话密钥。4、客户端和服务端分别使用工作密钥,计算主密钥,客户端随机数,服务端随机数,字符串常量"key expansion",经PRF计算生成工作密钥。工作密钥包括加密密钥和校验密钥,具体密钥长度由选择的密码算法决定。客户端支持的压缩算法列表。

Java学习笔记 3782

LabVIEW与三菱PLC通讯实战:ActiveX控件在FX5U上的应用技巧

本文深入探讨了如何利用三菱MX Component中的ActiveX控件,在LabVIEW中实现与FX5U系列PLC的高效、稳定通讯。文章从环境配置、ActiveX控件生命周期管理、数据读写性能优化及容错机制等实战角度,分享了构建工业级健壮通讯程序的核心技巧与架构设计思路。

qsc9012345的博客 889

室内温度控制仿真(Simulink+PLC)

本篇博客将会带领大家解读Simulink自带的仿真模型(Thermal Model of a House),之后再讨论PLC控制系统控制环境温度的一些经验方法

RXXW_Dor的博客 3460

华为OD面试手撕真题 - 最大数

华为OD面试手撕真题 最大的数 提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解

qq_45776114的博客 339

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

上一篇: 使用boost::lockfree::detail::tagged_ptr的示例程序
下一篇: 警告作为错误: 生成object文件失败
普通网友
博客等级 码龄3年 107粉丝 680原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值