C++ MFC 圆心坐标为double类型 怎么画??

画圆可以用Ellipse函数画。Ellipse函数的四个参数都为Int类型。要是圆的圆心和半径为double类型怎么办????... 画圆可以用Ellipse函数画。Ellipse函数的四个参数都为Int类型。要是圆的圆心和半径为double类型怎么办???? 展开
 我来答
ridsjoycc0
2012-09-08 · 超过36用户采纳过TA的回答
知道答主
回答量:118
采纳率:0%
帮助的人:105万
展开全部
MFC画图,是指简单的GDI吧
因为是在逻辑坐标系上面作图,像素是基本单位,像素点的话当然都是整数啦~
你说要是圆心和半径为double,那就转成逻辑坐标系中的坐标,同比例放大缩小什么的(自己决定算法),然后一个强转。。。汗
然后就是Ellipse(圆心.x-半径,圆心.y-半径, 圆心.x+半径,圆心.y+半径);
以上
镭毅
2012-09-08 · TA获得超过1394个赞
知道大有可为答主
回答量:1155
采纳率:0%
帮助的人:1081万
展开全部
将double型的数乘以一个“数”(倍数),然后变成整形数。

最后用Ellipse函数
更多追问追答
追问
哥们 能详细点不??
追答
屏幕的分辨率假设为640*480;

这样最大的半径为240.

将圆的半径设定为接近240的数,即原来的半径r*x=240,确定倍数x。

将Ellipse函数的四个参数设定为r*x
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友056bcb2
2012-09-09 · TA获得超过113个赞
知道答主
回答量:138
采纳率:0%
帮助的人:60.2万
展开全部
可以用GDIPlus来绘制,GDI+中有4个重载的绘制椭圆的函数,如果输入参数所确定的外接矩形的宽高相等,则画圆。(也是前两个为整数版,后两个为对应的浮点数版)
Status DrawEllipse(const Pen* pen, const Rect& rect);
Status DrawEllipse(const Pen* pen, INT x, INT y, INT width, INT height);
Status DrawEllipse(const Pen* pen, const RectF& rect);
Status DrawEllipse(const Pen* pen, REAL x, REAL y, REAL width, REAL height);这些函数的功能,与GDI中的Ellipse类似,但是同样要注意GDI+与GDI函数的区别:BOOL Ellipse( int x1, int y1, int x2, int y2 );主要是,上面的第2、4个GDI+画椭圆函数的后两个输入参数,也是矩形的宽高而不再是矩形的右下角坐标了。在这里还可以进行缩放,坐标系及缩放模式设置,还有反走样(看锯齿)支持,而且与设备指针无关,只要一个HDC句柄就可以了,试试吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式