求助,怎样画一个倾斜的椭圆?

jinxiaocsdn 2003-08-19 08:16:08
只要倾斜就行,特定的API我都试了,就是出不来,关键是要倾斜啊!
...全文
298 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jack_wq 2003-08-19
  • 打赏
  • 举报
回复
只是一些计算数学公式,取点采样,然后将采样结果用线连接,moveto,lineto函数
jack_wq 2003-08-19
  • 打赏
  • 举报
回复
只是一些计算数学公式,取点采样,然后将采样结果用线连接,moveto,lineto函数
bluebohe 2003-08-19
  • 打赏
  • 举报
回复
椭圆的离散算法并不太难,我这里有一点相关的代码,你看一下,离散完用MoveTo、LineTo就OK了
CEllipse *GenEllipse(XYZ pc,double length,double width,
double angs,double ange,double ang)
{
int i,num_seg;
double max_length,delta;
double a;

a = ange - angs;
if(a<ZERO) a += PI2;

max_length = max(length,width);
num_seg = (int)(0.5*(sqrt(10.0*max_length)*a + 1.0));
delta = a/num_seg;

//申请椭圆结点
CEllipse *pellipse = new CEllipse();
pellipse->p = new XYZ[num_seg+1];

for(i=0;i<=num_seg;i++) {
pellipse->p[i].x = pc.x + length*cos(i*delta);
pellipse->p[i].y = pc.y + width*sin(i*delta);
}

//按当前信息赋值
pellipse->num_seg = num_seg;

pellipse->pc.x = pc.x;
pellipse->pc.y = pc.y;

pellipse->length = length;
pellipse->width = width;

pellipse->angs = angs;
pellipse->ange = ange;
pellipse->ang = ang;

return (pellipse);
}
sshhit 2003-08-19
  • 打赏
  • 举报
回复
也很想知道。
如果搞定了,把代码贴出来和大家分享分享吧。
sshhit 2003-08-19
  • 打赏
  • 举报
回复
搞一个变换矩阵和椭圆的点成一下子,是不是可以搞定?
没试过
解决了,把代码贴一下分享分享!
findmyself 2003-08-19
  • 打赏
  • 举报
回复
帮你顶一下

19,468

社区成员

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

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