基于.net的空间向量库,包含了对空间向量结构的定义和常用方法/函数的定义,提供与System.Drawing.Point和System.Drawing.PointF的互操作性
2025/3/10 20:28:34 7KB c#
1
function1:实现supermap数据服务查询polygon类型的feature,并通过cesiumentity按查询类型绘制,点击要素显示要素属性信息;
function2:实现Point点要素查询,及cesium前端的绘制显示,及显示自定义属性信息
2025/3/8 11:39:49 7KB cesium supermap iServer
1
实习时给一个科学计算软件写的小模块,应为是科学计算和工业设计的要求精度高,就使用了统统使用了double类型。
程序的入口是double[]spline(point[]poits,doublexs[])point[]points是给定的插值样本点,double[]xs是要插值的点数组x的坐标。
返回值是插值结果的数组。
point是定义的类,有x,y两个坐标。
存储插值样本点。
2025/2/23 0:46:05 40KB C# 三次样条插值
1
PBDOM遍历一个节点下的所有节点name及text的函数例:1>trades_sold_get_response!2>trades!3>trade!4>adjust_fee:0.004>buyer_nick:hwangyanhong4>buyer_obtain_point_fee:04>buyer_rate:false4>cod_fee:0.004>cod_status:NEW_CREATED4>consign_time:2011-04-1821:32:404>created:2011-04-1712:25:234>discount_fee:0.004>modified:2011-04-1821:32:404>num:14>num_iid:100502052764>orders!5>order!6>adjust_fee:0.006>buyer_rate:false6>discount_fee:0.006>num:16>num_iid:100502052766>oid:723705613488006>payment:1.006>pic_path:http://img04.taobaocdn.com/bao/uploaded/i4/T1Ny8OXaXKXXaOBDQT_013227.jpg6>price:1.006>refund_status:NO_REFUND6>seller_rate:false6>seller_type:C6>status:WAIT_BUYER_CONFIRM_GOODS6>title:测试商品,请勿购买6>total_fee:1.004>pay_time:2011-04-1712:27:434>payment:1.004>pic_path:http://img04.taobaocdn.com/bao/uploaded/i4/T1Ny8OXaXKXXaOBDQT_013227.jpg4>point_fee:04>post_fee:0.004>price:1.004>real_point_fee:04>received_payment:0.004>receiver_address:所属地区:手机/小灵通号码:13764963675备注:4>receiver_name:不需收货人4>receiver_zip:0000004>seller_nick:xianzai894>seller_rate:false4>shipping_type:free4>sid:723705613488004>status:WAIT_BUYER_CONFIRM_GOODS4>tid:723705613488004>title:现在店4>total_fee:1.004>type:fixed2>total_results:1
1
#include#include#include#includeusingnamespacestd;intw=0;//尾数累加器intp=0;//指数累加器intj=0;//十进制小数位数计数器inte=1;//用来记录十进制数的符号,当指数为正时为1,为负时为-1inti=0;//用来标志元素位置intd=0;//用来表示每个数值型元素对应的数值constintN=40;//用来确定输入识别符的最大长度chardata[N];//存放输入的识别符boolis_digit;//标志是否是数字stringCJ1;//确定是整形还是实型doubleCJ2;//记数值//函数声明voidcheck(charc);//检查首字母是否是数字的函数voiddeal_integer(charc);//处理识别符的整数部分voiddeal_point(charc);//用来处理小数部分voiddeal_index(charc);//用来处理指数部分voids_next();//确定实型voidz_next();//确定整型voidlast();//计算CJ2voiderror();//程序中错误处理程序voiddeal();//处理函数主体intmain(){//主函数coutdata;deal();//处理函数主体last();//计算CJ2system("pause");return0;}voidcheck(charc)//判断输入的首字母是否是数字{is_digit=isdigit(c);while(is_digit!=true){//输入的首字母不是数字时coutdata;check(data[0]);}}voiddeal_integer(charc){//处理识别符的整数部分d=(int)c-48;w=w*10+d;i++;if(isdigit(data[i])!=0)//下一个仍是数值时,调用程序本身deal_integer(data[i]);}voiddeal_point(charc){//用来处理小数部分inttemp=i;if(isdigit(c)!=0)//是数值字符时deal_integer(c);else{error();//错误处理程序deal();//处理函数主体}j=i-temp;//记录十进制小数位数}voiddeal_index(charc){//用来处理指数部分if(c=='-'){e=-1;i++;}//是'-'号时else{if(c=='+')i++;//是'+'号时else{if(isdigit(c)==false)//非数值字符时{error();//错误处理程序deal();//处理函数主体}else
2024/12/19 11:09:24 33KB 无符号数的词法分析程序
1
GJK计算碰撞代码的应用//-----------------------------------------------------------------------------//Torque3D//Copyright(C)GarageGames.com,Inc.////Thecorealgorithmsinthisfilearebasedoncodewritten//byG.vandenBergenforhisinterferencedetectionlibrary,//"SOLID2.0"//-----------------------------------------------------------------------------#include"core/dataChunker.h"#include"collision/collision.h"#include"sceneGraph/sceneObject.h"#include"collision/convex.h"#include"collision/gjk.h"//----------------------------------------------------------------------------staticF32rel_error=1E-5f;//relativeerrorinthecomputeddistancestaticF32sTolerance=1E-3f;//DistancetolerancestaticF32sEpsilon2=1E-20f;//ZerolengthvectorstaticU32sIteration=15;//Stuckinaloop?S32num_iterations=0;S32num_irregularities=0;//----------------------------------------------------------------------------GjkCollisionState::GjkCollisionState(){a=b=0;}GjkCollisionState::~GjkCollisionState(){}//----------------------------------------------------------------------------voidGjkCollisionState::swap(){Convex*t=a;a=b;b=t;CollisionStateList*l=mLista;mLista=mListb;mListb=l;v.neg();}//----------------------------------------------------------------------------voidGjkCollisionState::compute_det(){//Dotnewpointwithcurrentsetfor(inti=0,bit=1;i0)returnfalse;}}returntrue;}//----------------------------------------------------------------------------inlineboolGjkCollisionState::closest(VectorF&v){compute_det();for(ints=bits;s;--s){if((s&bits)==s){if(valid(s|last_bit)){ bits=s|last_bit;if(bits!=15) compute_vector(bits,v); returntrue;}}}if(valid(last_bit)){bits=last_bit;v=y[last];returntrue;}returnfalse;}//----------------------------------------------------------------------------inlineboolGjkCollisionState::degenerate(constVectorF&w){for(inti=0,bit=1;imState=this;mListb=CollisionStateList::alloc();mListb->mState=this;}//----------------------------------------------------------------------------voidGjkCollisionState::reset(constMatrixF&a2w,constMatrixF&b2w){VectorFzero(0,0,0),sa,sb;a2w.mulP(a->support(zero),&sa);b2w.mulP(b->support(zero),&sb);v=sa-sb;dist=v.len();}//----------------------------------------------------------------------------voidGjkCollisionState::getCollisionInfo(constMatrixF&mat,Collision*info){AssertFatal(false,"GjkCollisionState::getCollisionInfo()-Thereremainscalingproblemshere.");//ThisassumesthattheshapesdonotintersectPoint3Fpa,pb;if(bits){getClosestPoints(pa,pb);mat.mulP(pa,&info->point);b->getTransform().mulP(pb,&pa);info->normal=info->point-pa;}else{mat.mulP(p[last],&info->point);info->normal=v;}info->normal.normalize();info->object=b->getObject();}voidGjkCollisionState::getClosestPoints(Point3F&p1,Point3F&p2){F32sum=0;p1.set(0,0,0);p2.set(0,0,0);for(inti=0,bit=1;isupport(va);a2w.mulP(p[last],&sa);VectorFvb,sb;w2b.mulV(v,&vb);q[last]=b->support(vb);b2w.mulP(q[last],&sb);VectorFw=sa-sb;if(mDot(v,w)>0)returnfalse;if(degenerate(w)){++num_irregularities;returnfalse;}y[last]=w;all_bits=bits|last_bit;++num_iterations;if(!closest(v)||num_iterations>sIteration){++num_irregularities;returnfalse;}}while(bitssEpsilon2);returntrue;}F32GjkCollisionState::distance(constMatrixF&a2w,constMatrixF&b2w,constF32dontCareDist,constMatrixF*_w2a,constMatrixF*_w2b){num_iterations=0;MatrixFw2a,w2b;if(_w2a==NULL||_w2b==NULL){w2a=a2w;w2b=b2w;w2a.inverse();w2b.inverse();}else{w2a=*_w2a;w2b=*_w2b;}reset(a2w,b2w);bits=0;all_bits=0;F32mu=0;do{nextBit();VectorFva,sa;w2a.mulV(-v,&va);p[last]=a->support(va);a2w.mulP(p[last],&sa);VectorFvb,sb;w2b.mulV(v,&vb);q[last]=b->support(vb);b2w.mulP(q[last],&sb);VectorFw=sa-sb;F32nm=mDot(v,w)/dist;if(nm>mu)mu=nm;if(mu>dontCareDist)returnmu;if(mFabs(dist-mu)sIteration){++num_irregularities;returndist;}y[last]=w;all_bits=bits|last_bit;if(!closest(v)){++num_irregularities;returndist;}dist=v.len();}while(bitssTolerance);if(bits==15&&mu<=0)dist=0;returndist;}
2024/11/12 17:21:22 50KB GJK 碰撞
1
图像的增强/////////////////////////////////直方图对话框构造函数;
ZFT::ZFT(CWnd*pParent/*=NULL*/):CDialog(ZFT::IDD,pParent)//ZFT为定义的用来显示直方图的对话框类;
{ Width=Height=0;//对话框初始化阶段设置图像的宽和高为"0";
}////////////////////////对话框重画函数;
voidZFT::OnPaint(){ CRectrect;//矩形区域对象;
 CWnd*pWnd;//得到图片框的窗口指针;
 pWnd=GetDlgItem(IDC_Graphic);//得到ZFT对话框内的"Frame"控件的指针;
 file://(IDC_Graphic为放置在对话框上的一个"Picture"控件,并讲类型设置为"Frame")。
 pWnd->GetClientRect(&rect);//得到"Frame"控件窗口的"视"区域;
 inti; CPaintDCdc(pWnd);//得到"Frame"控件的设备上下文;
 file://画直方图的x、y轴;
 dc.MoveTo(0,rect.Height()); dc.LineTo(rect.Width(),rect.Height()); dc.MoveTo(0,rect.Height()); dc.LineTo(0,0); file://画直方图,num[]是"ZFT"的内部数组变量,存放的是图像各个灰度级出现的概率;
该数组的各个分量在  显示具体图像的直方图时设置;
 for(i=0;iGetWindowRect(&rect);//获取pWnd窗口对象窗口区域位置;
 file://屏幕坐标转换为客户区坐标;
 ScreenToClient(&rect); file://判断当前鼠标是否指在直方图内;
 if(rect.PtInRect(point)) {  intx=point1.x-rect.left;  file://当前鼠标位置减去区域的起始位置恰好为当前鼠标所指位置所表示的灰度级;
  string.Format("%d",x);  file://显示当前位置对应的图像的灰度级;
  pWndText->SetWindowText((LPCTSTR)string); } CDialog::OnMouseMove(nFlags,point);}////////////////////////////////////////voidCDibView::OnImagehorgm()file://在程序的"视"类对象内处理显示图像直方图的函数;
{ CDibDoc*pDoc=GetDocument(); HDIBhdib; hdib=pDoc->GetHDIB(); BITMAPINFOHEADER*lpDIBHdr;//位图信息头结构指针;
 BYTE*lpDIBBits;//指向位图像素灰度值的指针;
 lpDIBHdr=(BITMAPINFOHEADER*)GlobalLock(hdib);//得到图像的位图头信息 lpDIBB
2024/11/9 9:49:33 134KB 图像增强
1
多标签多算法的Rust实现橙色点是多边形质心。
蓝绿色点是理想的标签位置。
红色框显示搜索空间。
您可以通过克隆此回购,切换到生成自己这个可视化的分公司,并打开Jupyter笔记本电脑,然后通过细胞步进。
您还可以使用笔记本轻松显示自己的多边形。
如何使用externcratepolylabel;usepolylabel::polylabel;externcrategeo;usegeo::{Point,Polygon};letcoords=vec![(0.0,0.0),(4.0,0.0),(4.0,1.0),(1.0,1.0),(1.0,4.0),(0.0,4.0),(0.0,0.0)];letpoly=Polygon::new(coords.into(),vec![]);letlabel_pos=polylabel(&poly,&0.10);//Point(0.5
2024/9/14 8:35:52 319KB rust algorithm mapping geo
1
5.1定义一个Point类,有点坐标属性(x,y),由它派生出圆形类(Circle)和矩形类(Rectangle),基类中定义了求面积的纯虚函数。
在主函数定义派生类的对象,调用面积函数,观察运行结果。
5.2定义一个教师Teacher类,由教师类派生出讲师、副教授、教授类。
教师的工资分别由基本工资、课时费和津贴构成。
假设讲师、副教授、教授的基本工资分别为3000、4000、5000元,课时费分别为每课时100、120、150元,每月平均授课20课时,津贴分别为2000、2500、3000元,请定义虚函数来计算各类教师的每月工资。
在主函数通过基类指针或引用来验证虚函数的多态性。
5.3编写一个的简单的求给定数平方根的程序,设计一个异常类用异常处理机制来检测给定数为负数的情况。
在主函数中进行测试。
2024/9/4 5:41:13 310KB C++
1
2018worldfinal金牌吉老师几何板子structpoint{dbx,y;pointoperator+(constpoint&k1;)const{return(point){k1.x+x,k1.y+y};}pointoperator-(constpoint&k1;)const{return(point){x-k1.x,y-k1.y};}pointoperator*(dbk1)const{return(point){x*k1,y*k1};}pointoperator/(dbk1)const{return(point){x/k1,y/k1};}intoperator==(constpoint&k1;)const{returncmp(x,k1.x)==0&&cmp;(y,k1.y)==0;}pointturn(dbk1){return(point){x*cos(k1)-y*sin(k1),x*sin(k1)+y*cos(k1)};}pointturn90(){return(point){-y,x};}booloperator<(constpointk1)const{inta=cmp(x,k1.x);if(a==-1)return1;elseif(a==1)return0;elsereturncmp(y,k1.y)==-1;}dbabs(){returnsqrt(x*x+y*y);}dbabs2(){returnx*x+y*y;}dbdis(pointk1){return((*this)-k1).abs();}pointunit(){dbw=abs();return(point){x/w,y/w};}voidscan(){doublek1,k2;scanf("%lf%lf",&k1;,&k2;);x=k1;y=k2;}voidprint(){printf("%.11lf%.11lf\n",x,y);}dbgetw(){returnatan2(y,x);}pointgetdel(){if(sign(x)==-1||(sign(x)==0&&sign;(y)==-1))return(*this)*(-1);elsereturn(*this);}intgetP()const{returnsign(y)==1||(sign(y)==0&&sign;(x)==-1);}};
2024/8/28 10:17:11 23KB c++ algorithm
1
共 32 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡