VTK:自定义直线和椭圆工具

news/2024/12/22 15:12:06/

摘要:

VTK没有提供椭圆工具,所以自己写了个绘制二维椭圆的类,随便也把直线工具也重新写了下。

参考代码:

C++
//A basic algorithm to draw an N segments ellipse on a window
// hWnd +> Handle to the window where the ellipse will be drawn
// hDC +> Device context to the window where the ellipse will be drawn
// nSeg +> A global variable contains the number of segments or points linked each other to form the ellipse
void MyDrawEllipse(HWND hWnd, HDC hDC)
{double x, y, _x, _y, __x, __y, dx, dy, z, wx, hy;RECT rc;//Prepare objects and dataGraphics g(hDC);Pen p(Color(0xff, 0, 0), 1.0); //RedGetClientRect(hWnd, &rc);z = 0.99; //Point coordinate affinitydx = double(rc.right) / 2.0 - 1.0; //Half window heightdy = double(rc.bottom) / 2.0 - 1.0; //Half window widthwx = double(rc.right) / 2.0; //Ellipse centerhy = double(rc.bottom) / 2.0; //Ellipse centerfor(int i = 0; i < int(nSeg); i++) {x = wx * sin((double(i) / double(nSeg)) * (pi*2.0));y = hy * cos((double(i) / double(nSeg)) * (pi*2.0));if(i > 0) {//Draw a line connecting the last point to the one being calculated nowg.DrawLine(&p, int(dx+_x+z), int(dy+-_y+z), int(dx+x+z), int(dy+-y+z));} else {//Save the first point coordinate to link it with the last one__x = x;__y = y;}//Save the actual point coordinate to link it with the next one_x = x;_y = y;}//Draw a line between the last point and the first oneg.DrawLine(&p, int(dx+x+z), int(dy+-y+z), int(dx+__x+z), int(dy+-__y+z));/*//I use the GDI+ DrawEllipse function to compare my algorithm with//the one used by GDI+. Only the visual result is important for me now!p.SetColor(Color(0, 0xff, 0));g.DrawEllipse(&p, 0, 0, rc.right-1, rc.bottom-1);*/
}

原文链接:Ellipse drawing algorithm - CodeProject


http://www.ppmy.cn/news/809334.html

相关文章

AUTOCAD——椭圆与椭圆弧命令

创建椭圆或者椭圆弧。 执行方式 命令行&#xff1a;SPLINE 菜单栏&#xff1a;绘图→椭圆→椭圆弧 工具栏&#xff1a;椭圆命令图标 椭圆弧命令图标 “椭圆与椭圆弧命令操作命令位置”界面 执行以上命令后&#xff0c;命令行会显示以下信息&#xff1a; 选项说明 1.指定椭…

ps选框工具

选框工具 选框工具可以用来制作各种选区&#xff0c;是ps中常用的选区工具&#xff0c;非常方便实用下面有1矩形选框工具&#xff0c;2椭圆选框工具&#xff0c;3单行选框工具&#xff0c;4单列选框工具&#xff0c;快捷键为M。 1矩形选框工具 长方形&#xff1a;使用矩形选框工…

ps 图片切圆角

ps 切圆角 stp1: 右边矩形工具上 点击鼠标右键 选择圆角矩形工具 stp2:选择路径 按住Ctrl鼠标点击工作路径 CtrlShiftI进行反向选择 后点击Delte按键删除剩余部分

Qt之绘制椭圆、椭圆弧上任意点

参考代码 void MainWindow::paintEvent(QPaintEvent *event) {event->accept();QPainter painter(this);painter.setPen(QPen(Qt::red,2));//移动坐标中心点到窗口中心&#xff0c;默认左上角为起点&#xff0c;往右下为正方向painter.translate(width()/2,height()/2);//画…

【经验分享】用PS如何将图片的四角做成圆弧角

【经验分享】用PS如何将图片的四角做成圆弧角 在很多情况下圆角图片看起来更美观整洁&#xff0c;今天分享一下自己经常使用 PS 是如何将图片做出圆弧角&#xff0c;仅供参考。 以下面这张图片为例。 一、 在 PS 中打开素材图片&#xff0c;选择【圆角矩形工具】。 二、 在上方…

Ps矩形工具及其附属工具的用法

打开PS后可以看到整个页面的最左端的工具栏&#xff0c;从上往下数第十八个就是矩形工具&#xff0c;鼠标右键&#xff0c;右键之后就会出现一个小的工具栏&#xff0c;那就是矩形工具的附属工具从上往下分 别是矩形工具、圆角矩形工具、椭圆工具、多边形工具、直线工具、自定义…

PS UI设计实现使用椭圆工具的蝴蝶的效果

目录 一、前言 二、名称 三、效果展示 四、步骤 一、前言 1.本次效果采用借鉴PS书籍案例制作&#xff0c;之前发的特别潦草&#xff0c;就是把做完的界面发了出来&#xff0c;现在时隔半年在给它完善以下&#xff0c;下面我把操作的步骤发一下&#xff1b; 2.我是用的是P…

【PS基础教程】PS制作圆形小图标

【PS基础教程】PS制作圆形小图标 *【ps基础教程】是我自己在完全没有ps基础的情况下&#xff08;好多教程里相关选项的位置我都找不到&#xff09;遇到的问题的总结。 制作效果图如下图所示&#xff1a; 第一步&#xff0c;使用ps的截切工具将图片截切为宽高和最后的圆的直径…