unlocker 3.0.3 for setup mac
支持16.2.3
安装vmware后,停止所有服务,以管理员身份运行win-install.cmd即可
NY/T 2539-2016 农村土地承包经营权确权登记数据库规范
NY/T 2539-2016 农村土地承包经营权确权登记数据库规范
TDT 1015-2007《城镇地籍数据库标准》.docx
TDT 1015-2007《城镇地籍数据库标准》.docx
hudson3.2.1
hudson3.2.1的war包,直接放在tomcat/webapps下运行。
初次运行需要进行插件配置,最好直接访问tomcat环境配置
chrome-Extensions-postman
使用方法,将文件放在
盘符:\Users\用户名\AppData\Local\Google\Chrome\User Data\Default\Extensions
解压
在chrome的扩展程序里,在开发者模式下通过“加载正在开发的扩展程序”,选择解压出来的文件夹(注意是有带版本号那个文件夹),导入即可。
安装后chrome打开时会提醒禁止使用开发者模式的扩展程序,取消即可。
计算机图形学示例(扫描线填充)
用VC++6.0实现的扫描线填充,裁剪算法及画线方法
CPen pen(PS_SOLID,1,fillcolor); //设置扫描线所用笔的属性
CPen *old=pDC->SelectObject(&pen);
int j,k,s=0;
int p[9]; //每根扫描线交点
int pmin=1000;
int pmax=0;
for(int i=0;i<inLength;i++)//建立边表
{
edge[i].dx=(float)(inVertexArray[i+1].x-inVertexArray[i].x)/(inVertexArray[i+1].y-inVertexArray[i].y);
edge[i].num=i;
if(inVertexArray[i].y<=inVertexArray[i+1].y)
{
edge[i].ymin=inVertexArray[i].y;
edge[i].ymax=inVertexArray[i+1].y;
edge[i].xmin=(float)inVertexArray[i].x;
edge[i].xmax=(float)inVertexArray[i+1].x;
}
else{
edge[i].ymin=inVertexArray[i+1].y;
edge[i].ymax=inVertexArray[i].y;
edge[i].xmax=(float)inVertexArray[i].x;
edge[i].xmin=(float)inVertexArray[i+1].x;
}
}
//求多边形的最大最小值
for(int m=1;m<inLength;m++)
{
for(int n=0;n<inLength-m;n++)
{
if (pmax<inVertexArray[n].y)
pmax = inVertexArray[n].y;
if (pmin>inVertexArray[n].y)
pmin=inVertexArray[n].y;
}
}
for(int r=1;r<inLength;r++) //边表edge排序
{
for(int q=0;q<inLength-r;q++)
{
if(edge[q].ymin<edge[q+1].ymin)
{
newedge[0]=edge[q]; edge[q]=edge[q+1];
edge[q+1]=newedge[0];
}
}
}
for(int scan=pmax;scan>pmin;scan--) //扫描线遵守'“上开下闭”的原则
{
int b=0;
k=s;
for(j=k;j<inLength;j++)
{
if((scan>=edge[j].ymin)&&(scan<=edge[j].ymax))//判断扫描线与线段是否相交于顶点
{
int preNum = edge[j].num;
int nextNum = edge[j].num+1;
if (preNum==0)
preNum = inLength - 1;
else
preNum = preNum -1;
if (nextNum == inLength)
nextNum = 0;
if(scan==edge[j].ymax) //位于下顶点时,根据相临点的位置决定取几个点
{
if(inVertexArray[nextNum].y<edge[j].ymax)
{
b++;
p[b]=(int)edge[j].xmax;
}
if(inVertexArray[preNum].y<edge[j].ymax)
{
b++;
p[b]=(int)edge[j].xmax;
}
}
if(scan==edge[j].ymin) //位于上顶点时,取两个点
{
b++;
p[b]=(int)edge[j].xmin;
b++;
p[b]=(int)edge[j].xmin;
}
if((scan>edge[j].ymin)&&(scan<edge[j].ymax))
{
b++;
p[b]=(int)(edge[j].xmax+edge[j].dx*(scan-edge[j].ymax));
}
}
if(scan<edge[j].ymin) //建立新的活性边表
s=j;
}
if(b>1)
{
int tmpp = p[1];
for (int u = 1;u<=b;u++) //对交点排序
{
for (int m = 1;m<=b-u;m++)
{
if (p[m]<p[m+1])
{
tmpp = p[m];
p[m] = p[m+1];
p[m+1] = tmpp;
}
}
}
for(int n=1;n<b;n=n+2)
{
pDC->MoveTo(p[n],scan);
pDC->LineTo(p[n+1],scan);
}
}
}