请教如何使用画椭圆函数ellipse-----请春节大散分!!!!!!!!!!!!

shantian 2003-01-14 09:58:09
昨天在编程序的时候,看到了ellipse函数画椭圆。搞的我很糊涂,不知道这个函数中的参数是怎么个意思,下面举例子如下:
~~~~~~~~~~~~~~~~~~~~~~~~?
椭圆的中心坐标:(CenterX,CenterY),其中:CenterX = Rect.Buttom/2,CenterY = Rect.Right/2

然后,调用ellipse函数:ellipse(5,5,Rect.Buttom-5,Rect.Right-5)

我的疑问是,这个ellipse函数是如何通过这些参数画椭圆的?我心中不知道如何利用这些参数形成椭圆,好迷惑。
...全文
827 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
用户 昵称 2003-01-14
  • 打赏
  • 举报
回复
up
突击召唤师 2003-01-14
  • 打赏
  • 举报
回复
很多东西要看你自己的悟性和灵性,总是问别人也不行。比如创意
shantian 2003-01-14
  • 打赏
  • 举报
回复
hnyyy,Thank you very much!

"另外,我还想请问大虾们,关于这样的很图形有关的问题,需要怎么入手呢?我编的是个显示一个椭圆时钟的界面,按照例子可以编,可是,自己没有思路。比如,如何计算分钟指针,小时指针,等等。"
hnyyy 2003-01-14
  • 打赏
  • 举报
回复
是矩形的四个角相对于客户区的坐标。
这样也可以的。

CRect rect;
GetClientRect(rect);

pDC->ellipse(rect);

BOOL Ellipse(ini x1,int y1,ini x2,int y2);
BOOL Ellipse(LPCRECT lpRect);
返回值如果成功,则返回非零值,否则为0。
参数
x1
指定椭圆外接矩形左上角的X逻辑坐标。
Y1
指定椭圆外接矩形左上角的Y逻辑坐标。
X2
指定椭圆外接矩形右下角的X逻辑坐标。
Y2
指定椭圆外接矩形右下角的Y逻辑坐标。

LpRect
指定椭圆外接矩形时,可以将Crect对象传递给该参数。
说明
绘制椭圆。椭圆与其外接矩形的中心由 x1,y1,x2,y2 或lpRect 指定,椭圆由当前画笔绘制,内部由当前画刷填充。该函数绘制的图形可以扩充到但并不包括右边及底部坐标,亦即图形的高度是y2-y1,宽度是x2-x1。如果外接椭圆的宽度或高度是0,则不绘制椭圆。
shantian 2003-01-14
  • 打赏
  • 举报
回复
to hnyyy:那么,那四个参数的意思就不是“椭圆1.2参数是相对于客户区的坐标。后面两个就是椭圆公式的两个x,y”了,是矩形的什么坐标呢?请回答:)
hnyyy 2003-01-14
  • 打赏
  • 举报
回复
是的。
shantian 2003-01-14
  • 打赏
  • 举报
回复
我昨晚看过MSDN,可惜现在手头没有,只好凭记性了。
那四个参数好象是X,UPPER_LEFT;Y,UPPER_LEFT;X,LOWER_RIGHT;Y,LOWER_RIGHT.(是矩形的)。呵呵,肯能记的不大对,只是个大概意思了,还请高手指点。
willchenhello 2003-01-14
  • 打赏
  • 举报
回复
up
shantian 2003-01-14
  • 打赏
  • 举报
回复
TO楼上:我是这样理解你的话的,中心是不是这样计算的,一X坐标为例:(Rect.bottom-5+5)/2,而对ellipse(0,0,Rect.bottom,Rect.right),X坐标为(Rect.bottom+0)/2。
但是,请问,您所说的“只不过大了一些”是什么意思?椭圆大了一些??
hnyyy 2003-01-14
  • 打赏
  • 举报
回复
这很简单,因为前面也是两个5。
ellipse(5,5,Rect.bottom-5,Rect.right-5);中心点是
(CenterX,CenterY),

ellipse(0,0,Rect.bottom,Rect.right);中心点也是
(CenterX,CenterY)只不过大一些了。
shantian 2003-01-14
  • 打赏
  • 举报
回复
如楼上所说,后面两个参数是椭圆的2a和2b吧?但是,后面两个参数都-5后,怎么能保证椭圆的中心还是:(CenterX,CenterY),其中:CenterX=Rect.Buttom/2,CenterY = Rect.Right/2,是不是应该是CenterX=(Rect.Buttom-5)/2,CenterY = (Rect.Right-5)/2呢?
YP2002CN 2003-01-14
  • 打赏
  • 举报
回复
椭圆1.2参数是相对于客户区的坐标。后面两个就是椭圆公式的两个x,y。

用数学公式计算一下。
shantian 2003-01-14
  • 打赏
  • 举报
回复
楼上的,我问的是如何通过函数里面参数得到椭圆,我不明白参数的具体意思和使用。

另外,我还想请问大虾们,关于这样的很图形有关的问题,需要怎么入手呢?我编的是个显示一个椭圆时钟的界面,按照例子可以编,可是,自己没有思路。比如,如何计算分钟指针,小时指针,等等。
突击召唤师 2003-01-14
  • 打赏
  • 举报
回复
Ellipse是通过外接矩形画的,呵呵。

19,469

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧