![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编程算法
zyrr159487
这个作者很懒,什么都没留下…
展开
-
极简单的绘制曲线的函数
CPoint point[iMaxcount];//坐标点数组 CDC *pDc=GetDC(); pDc->MoveTo(point[0]); for(int i=1;i <=iMaxcount;i++) { pDc->LineTo(point[i]); } 现在看这个函数都有一种可爱小巧的感觉了原创 2011-11-04 10:20:16 · 775 阅读 · 0 评论 -
推导坐标旋转公式
在《Flash actionScript 3.0 动画教程》一书中有一个旋转公式:x1=cos(angle)*x-sin(angle)*y;y1=cos(angle)*y+sin(angle)*x;其中x,y表示物体相对于旋转点旋转angle的角度之前的坐标,x1,y1表示物体旋转angle后相对于旋转点的坐标 从数学上来说,此公式可以用来计算某个点绕另外一点旋转转载 2011-12-12 11:43:02 · 1013 阅读 · 0 评论 -
VC - MFC鼠标拖动效果编程
要实现的功能实际上很简单,一般人都用到见惯不惯了,但是实现起来还是有点意思的。问题详细描述:(三步)单击鼠标左键时记录下单击点;鼠标拖动时,显示的矩形框能够动态的跟随显示;释放鼠标左键时擦出矩形框。这样分析其实问题就简单一些了,只需要对鼠标的三个事件进行相应就可以了。代码主要在三处地方修改了:第一处:VIEW类中设置私有变量(VIEW类.h文件中)priva转载 2011-12-12 11:48:52 · 3897 阅读 · 0 评论 -
绘制多边形
CBPoint FirstPt;FirstPt = EndPt;pDC->MoveTo((int)(FirstPt.x),(int)( FirstPt.y));double fsin = sin(TWO_PI / iPolygonsides);double fcos = cos(TWO_PI / iPolygonsides); for (int i = 1 ; i < iPolygons原创 2011-12-27 13:23:30 · 677 阅读 · 0 评论 -
绘制矩形时按下SHIFT则绘制正方形
//按下SHIFT时绘制正方形if(GetKeyState(VK_SHIFT) & PRESSED){ double dDistX = tempPoint.x - StartPt.x; double dDistY = tempPoint.y - StartPt.y; //判断较短的边 if(fabs(dDistX) < fabs(dDistY)) {原创 2011-12-27 13:25:32 · 1551 阅读 · 0 评论 -
图形旋转90度计算
1原地旋转90度 double cx = (bBox.top + bBox.bottom) * 0.5;; double cy = bBox.left + fabs(bBox.bottom - bBox.top) * 0.5;; double dRotateRadian = -90.0 / 360.0 * TWO_PI; double dCos = cos(dRo原创 2011-12-27 13:59:41 · 2625 阅读 · 0 评论 -
通过二分法将曲线转换为直线
void CBTapParser::convertToLine(CBPoint startPt, CBCurveTo* pCurve, CBObList* pLineList){ CBObList curveList; CBPoint midPt; bool bBreak = false; CBCurveTo *pCv1, *pCv2; curveList原创 2012-01-10 11:25:36 · 1728 阅读 · 0 评论 -
判断点是否在不规则区域范围内
发布了一个帖子向坛友请教,整理如下1原帖http://topic.csdn.net/u/20110711/13/01cb1ff3-162c-4e5a-8220-4be89964f1b7.html2方法方法①可以先将你的不规则图形转换为区域(Region),然后可以用函数PtInRegion来判断。CreatePolygonRgn()PtInRegion()方法原创 2012-01-10 11:53:01 · 2535 阅读 · 0 评论