二维

二维画图 需要注意的

匿名 (未验证) 提交于 2019-12-03 00:37:01
Qt的二维图形引擎是基于QPainter类的,而 QPaintDevice 不直接绘制物理显示画面,而利用逻辑界面的中间媒介。例如,绘制矩形图形时,为了将对象绘制到 QWidget、QGLPixelBuffer、QImage、QPixmap、QPicture 等多种界面中间,必须使用 QPaintDevice。QPaintDevice是所有绘图设备的基类。 QPainter painter; painter.begin(this); ... painter.end(): QPainter painter(this); 上面这两个操作的效果相同,this表明在Widget部件上进行绘制,使用这个构造函数创建的对象会立即开始在设备上进行绘制,而调用begin就可以在创建QPainter时不指定使用设备,使用时再指定. 对于画笔 QPen::QPen(const QBrush &brush,qreal width,Qt::PenStyle style=Qt::SolidLine,Qt::PenCapStyle cap=Qt::SquareCap,Qt::PenJoinStyle join=Qt::BevelJoin); 参数分别为画笔使用的画刷,线宽,画笔风格,画笔端点风格和画笔连接风格,需要注意的是拐点风格和连接风格,拐点风格有FlatCap,SquareCap,RoundCap等

二维图形基本几何变换矩阵

匿名 (未验证) 提交于 2019-12-03 00:30:01
二维图形基本几何变换是指相对于坐标原点和坐标轴进行的几何变换,包括 平移 (Translate)、 比例 (Scale)、 旋转 (Rotate)、 反射 (Reflect)和 错切 (shear)5种变换。物体变换物体变换是通过变换物体上每一个顶点实现的,因此以点的二维基本几何变换为例讲解二维图形基本几何变换矩阵 。 上面讨论的五种变换给出的都是点变换的公式,对于线框模型,图形的变换实际上都可以通过点变换来完成。例如直线段的变换可以通过对两个顶点坐标进行变换,连接新顶点得到变换后的新直线段;多边形的变换可以通过对每个顶点进行变换,连接新顶点得到变换后的新多边形。曲线的变换可通过变换控制多边形的控制点后,重新绘制曲线来实现。 符合下面形式的坐标变换称为 二维仿射变换 (Affine Transformation)。 仿射变换具有平行线变换成平行线,有限点映射到有限点的一般特性。平移、比例、旋转、反射和错切五种变换都是二维仿射变换的特例,任何一组二维仿射变换总可表示为这5种变换的组合。 文章来源: 二维图形基本几何变换矩阵

计算二维空间中点的集合的最小凸包

匿名 (未验证) 提交于 2019-12-03 00:22:01
from scipy import spatial import numpy as np import matplotlib.pyplot as plt np.random.seed(42) points2d=np.random.rand(10,2)#一组二维平面上的随机点 #convexHull计算包含N维空间中点的集合的最小凸包 ch2d=spatial.ConvexHull(points2d) #绘图 poly=plt.Polygon(points2d[ch2d.vertices],fill=None,lw=2,color='r',alpha=0.5) ax=plt.subplot(aspect='equal') plt.plot(points2d[:,0],points2d[:,1],'go') for i ,pos in enumerate(points2d): plt.text(pos[0],pos[1],str(i),color='blue') ax.add_artist(poly) plt.show() ConvexHull.simplices是凸包每条边线的两个顶点在二维平面上的下标 ConvexHull.vertices是凸多边形的每个顶点在二维平面上的下标 文章来源: 计算二维空间中点的集合的最小凸包

连续型概率分布――正态分布(二维)

匿名 (未验证) 提交于 2019-12-03 00:19:01
1. 定义:设二维连续型随机变量(X,Y)的联合概率密度为 其中μ1,μ2,σ1,σ2,ρ均为常数,且σ1>0, σ2>0, |ρ|<1则称(X,Y)服从参数为μ1,μ2,σ1,σ2,ρ的二维正态分布。 二维正态分布的密度函数如下图 显然f(x,y)>=0 可以验证 2. 关于二维正态分布,需掌握如下结论: (1)二维正态分布的两个边缘分布均为一维正态分布。 证明:略 (2)若(X,Y)服从二维正态分布,则X与Y相互独立的充要条件为X与Y的相关系数ρ等于零(即不相关)。 独立和不相关的关系:独立不一定相关,不相关不一定独立。 但是,对于二维正态分布:独立=不相关 答案:略 文章来源: 连续型概率分布――正态分布(二维)

hduoj FATE(二维完全背包)

匿名 (未验证) 提交于 2019-12-03 00:18:01
FATE Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 17607 Accepted Submission(s): 8263 Problem Description 最近xhd正在玩一款叫做FATE的游戏,为了得到极品装备,xhd在不停的杀怪做任务。久而久之xhd开始对杀怪产生的厌恶感,但又不得不通过杀怪来升完这最后一级。现在的问题是,xhd升掉最后一级还需n的经验值,xhd还留有m的忍耐度,每杀一个怪xhd会得到相应的经验,并减掉相应的忍耐度。当忍耐度降到0或者0以下时,xhd就不会玩这游戏。xhd还说了他最多只杀s只怪。请问他能升掉这最后一级吗? Input 输入数据有多组,对于每组数据第一行输入n,m,k,s(0 < n,m,k,s < 100)四个正整数。分别表示还需的经验值,保留的忍耐度,怪的种数和最多的杀怪数。接下来输入k行数据。每行数据输入两个正整数a,b(0 < a,b < 20);分别表示杀掉一只这种怪xhd会得到的经验值和会减掉的忍耐度。(每种怪都有无数个) Output 输出升完这级还能保留的最大忍耐度,如果无法升完这级输出-1。 Sample Input 10 10 1 10 1 1 10 10 1 9

微信群如何设置永久有效二维码?99.99%的人都不知道!

匿名 (未验证) 提交于 2019-12-03 00:09:02
问题: 微信群营销已经成为很多商家利用线下活动引流用户到微信的必经之路了,这也是目前比较流行的营销方式,我们都知道微信群未满100人之前群二维码是有效可扫码的,让粉丝通过扫码进群。 但是人数一旦超过100人后,发出的二维码就失效了,无法再次扫码进群。必须通过邀请加入的方式,且必须通过实名认证(开通微信支付)才能加入。然而一场活动做下来,吸粉的基数是相当庞大的,所以这个限制就让很多商家头疼了。 *还有一种情况下群二维码也会失效,就是生成二维码起7天后自动失效。 因此会有很多人想知道微信群二维码突破100人限制和7天不过期的方法!今天小草活码就跟大家唠唠其解决方案。 方案: 群二维码在两种情况下会失效,其一就是群人数达到100人后失效,其二就是7天后自动失效,有效期可谓是很短暂的。那如果二维码失效了怎么办呢?有几种解决办法: 1、重新再生成一个新的二维码,让人扫码进群。 但是这种方法相对复杂一点,比如我们在做一场线上活动的时候,就不能老是去更换二维码。对于用户来说,扫一次码失败之后就不会再扫了,容易造成用户流失。 2、放群主的二维码,让群主拉人进群。 这种方法的话对用户来说是没多大差别的,无论你是放群二维码也好,还是群主的二维码也好,只是中间多了一个环节,但最终结果都是一样。但是对于群主来说,就多了很多工作量,每天可能会有很多人加好友,然后再一个个的拉人入群,可能有的用户会漏掉

前缀和、二维前缀和与差分

匿名 (未验证) 提交于 2019-12-03 00:07:01
【引入】 首先给出一个问题: 给定n个数,再给出m个询问,每个询问给出区间Li,Ri和x,要求你在Li到Ri上每一个值都加上x,最后给出一个询问区间L,R的区间和,怎么办? 思考一下:如果暴力,最坏时间复杂度O(n^2);线段树或者树状数组,时间复杂度O(logn);而使用差分可以O(n)。 【前缀和】 设b[]为前缀和数组,a[]为原数组,根据这句话可以得到前缀和的定义式和递推式: 一维前缀和理解起来比较容易,二维前缀和后边细说,我们先来说说差分。 什么是差分?差分是一个数组相邻两元素的差,一般为下标靠后的减去靠前的一个。 设差分数组p[],即: 差分是将数列中的每一项分别与前一项数做差, 例如: 一个序列1 2 5 4 7 3,差分后得到1 1 3 -1 3 -4 -3 这里注意得到的差分序列第一个数和原来的第一个数一样(相当于第一个数减0) 差分序列最后比原序列多一个数(相当于0减最后一个数) 性质: 1、差分序列求前缀和可得原序列 2、将原序列区间[L,R]中的元素全部+1,可以转化操作为差分序列L处+1,R+1处-1 3、按照性质2得到,每次修改原序列一个区间+1,那么每次差分序列修改处增加的和减少的相同 【联系】 前缀和和差分有什么关系呢? 可以说 前缀和 和 差分 是一对互逆过程。 【一维前缀和】 【二维前缀和】 二维前缀和的计算运用了容斥定理,我们来看下图:

matlab二维插值绘制地貌图

匿名 (未验证) 提交于 2019-12-03 00:05:01
clear clc [ x , y ]= meshgrid ( 1 : 10 ); % 测量数据 h =[ 0 . 02 -. 12 0 - 2.09 0 -. 58 -. 08 0 0 ; . 02 0 0 - 2.38 0 - 4.96 0 0 0 -. 1 ; 0 . 1 1 0 - 3.04 0 -. 53 0 . 1 0 ; 0 0 0 3.52 0 0 0 0 0 0 ; -. 43 - 1.98 0 0 0 . 77 0 2.17 0 0 ; 0 0 - 2.29 0 . 69 0 2.59 0 . 3 0 ; -. 09 -. 31 0 0 0 4.27 0 0 0 -. 01 ; 0 0 0 5.13 7.4 0 1.89 0 . 04 0 ; . 1 0 . 58 0 0 1.75 0 -. 11 0 0 ; 0 -. 01 0 0 . 3 0 0 0 0 . 01 ]; [ xi , yi ]= meshgrid ( 1 :. 1 : 10 ); hi = interp2 ( x , y , h , xi , yi , 'spline' ); % 二维插值,三次样条插值 surf ( hi ) % 绘制地貌图 xlabel ( 'x' ), ylabel ( 'y' ), zlabel ( 'h' ) 来源:51CTO 作者: doubleslow; 链接

用二维和一维数组解决0-1背包问题

淺唱寂寞╮ 提交于 2019-12-02 23:52:30
问题描述 0/1背包问题    物品集合U={u1,u2…un},体积分别为s1,s2…..sn,价值分别为v1,v2….vn;容量C的背包。设计算法实现放入背包的物品价值最大。 输入描述   第一行输入物品数n和背包的容量C,接下来n行分别输入每个物品体积及价值 输出描述   输出最大价值数 输入样例   3 10   3 4   4 5   5 6 输出样例   11 问题分析 每个物品有装入和不装入两个选择,定义n维向量x=(x 1 ,x 2 ,x 3 ,~~x n ),其中x k =1表示物品k装入,x k =0表示不装入,因此一个0-1向量代表了一种装载方案, 现在要求给出一种最优装载方案x,满足总容量<=C,使得总价值最大,那么考虑 前i个物品 1,2,3~~i,以及背包容量j, 记D[i][j]为 前i个物品在背包容量为j的情况下所能得到的最大价值 。 它满足以下递推关系: (1) D[0][j]=0,j=0,1,2,,C; 物品为0时肯定最大价值全为0 这是递推起点 需要初始化 (2) 若j<w[i],D[i][j]=D[i-1][j],否则D[i][j]=max(D[i-1][j],D[i-1][j-w[i]]+v[i]); 这是递推表达式 D[i][j]的计算要用到上一行的两个元素,因此计算顺序和填二维数组的顺序是一样的,从左往右,再从左往右 则最后右下角的D