社区首页 >问答首页 >在场景中绘制带有特定点的椭圆

在场景中绘制带有特定点的椭圆
EN

Stack Overflow用户
提问于 2013-12-10 03:25:28
回答 1查看 1.1K关注 0票数 0

我想知道我如何画椭圆,并在画中标明三个点。如果用户使用mousePress选择场景中的三个点,我将用标记突出显示按下的点。现在使用这三个标记,我必须在这三个标记周围画一个椭圆,或者把点作为我画的椭圆的边界。

对于实现,绘制路径drawEllipse将工作..?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-10 05:10:42

我曾与PySide一起解决过类似的问题。您可以轻松地在C++中修改这段代码:

代码语言:javascript
代码运行次数:0
复制
def paintEvent( self, ev ):
    painter = QPainter( self )
    painter.setPen( QPen( Qt.red, 4 ) )
    painter.drawPoint( self.a )
    painter.drawPoint( self.b )
    painter.drawPoint( self.c )

    # 1. Find the long axis.
    maxL = max( QLineF( self.a, self.b ), QLineF( self.a, self.c ), QLineF( self.b, self.c ), key=lambda x: x.length() )
    center = maxL.pointAt( 0.5 )

    # 2. Find the small axis
    if maxL == QLineF( self.a, self.b ):
        c = self.c
    elif maxL == QLineF( self.a, self.c ):
        c = self.b
    else:
        c = self.a
    w = maxL.length()
    h = QLineF( c, center ).length() * 2.0

    # 3. Define the bounding rect for our ellipse
    rect = QRect( -w/2.0, -h/2.0, w, h )

    # 4. Rotate the painter and draw the ellipse
    painter.translate( center.x(), center.y() )
    painter.rotate( -maxL.angle() )
    painter.setPen( Qt.black )
    painter.drawEllipse( rect )

考虑到这三个点是两个轴的两端,本文的目的是计算椭圆的边界矩形。

所以,第一步是找到更长的轴。第二步找到小轴。

矩形是由轴的长度定义的,我们只需要旋转油漆机就可以画出椭圆。

应该有一个更好的解决方案,但目前看来矿藏是可行的.

编辑:它又快又脏。所以,在很多情况下,这是行不通的。一个更好的解决方案是使用这个属性:对于椭圆上的每个点,点到两个静态点之间的距离之和是恒定的。所以,你可以计算这个距离,确定另外两个点,确定两个轴。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20493185

复制
相关文章
opencv绘制椭圆
淼学派对
2023/10/14
2140
opencv绘制椭圆
你会绘制椭圆吗?
圆特征在测量领域中应用广泛,比如:相机标定、位姿估计、目标跟踪等方面。圆经过透视投影,当成像平面与圆平面不平行时,圆经过透视投影为椭圆,圆心的透视投影点与椭圆的中心点不重合,这个偏差叫做椭圆构像偏差。鉴于此,研究如何绘制一个高精度的椭圆,对于整个测量系统的精度具有重要意义。
3D视觉工坊
2020/12/11
9300
你会绘制椭圆吗?
ggforce优雅的绘制多组椭圆图
R语言数据分析指南
2023/08/18
3260
ggforce优雅的绘制多组椭圆图
你会绘制椭圆吗?
圆特征在测量领域中应用广泛,比如:相机标定、位姿估计、目标跟踪等方面。圆经过透视投影,当成像平面与圆平面不平行时,圆经过透视投影为椭圆,圆心的透视投影点与椭圆的中心点不重合,这个偏差叫做椭圆构像偏差。鉴于此,研究如何绘制一个高精度的椭圆,对于整个测量系统的精度具有重要意义。
计算机视觉
2020/12/11
1.3K0
你会绘制椭圆吗?
Fabric.js 自由绘制椭圆
持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第2天,点击查看活动详情
德育处主任
2022/09/23
2.7K0
Fabric.js 自由绘制椭圆
用python绘制圆(python用函数绘制椭圆)
# ==========================================
全栈程序员站长
2022/07/30
1.3K0
用python绘制圆(python用函数绘制椭圆)
教你在Tableau中绘制蝌蚪图等带有空心圆的图表(多链接)
本文将通过分享多种方法,包括成功的与失败的尝试,来讲解如何在Tableau中创建蝌蚪图等带有空心圆的图表。
数据派THU
2018/07/30
8.5K0
教你在Tableau中绘制蝌蚪图等带有空心圆的图表(多链接)
2D坐标系中绘制旋转的椭圆-坐标变换
https://www.cnblogs.com/zhoug2020/p/7864898.html
周星星9527
2021/03/19
1.2K0
2D坐标系中绘制旋转的椭圆-坐标变换
Flash在DirectX中的绘制
这里使用的是之前我说过的OLE控件在Direct3D中的渲染方法, 自己不进行swf的解析, 这不现实. 前提条件: COM编程, OLE编程, DirectX编程, ActionScript/Flash(可选). 创建一个ShockwaveFlashObjects::IShockwaveFlash的对象 实现一个IOleClientSite来做为IShockwaveFlash的容器 绘制 通过OleDraw来把GDI的像素数据绘制到DC上(IShockwaveFlash是一个IViewObjec
逍遥剑客
2018/05/23
1.8K0
Python绘制带有中文标签和图例的图
本文属于科学计算与可视化范畴,要点在于扩展库numpy、pylab、matplotlib的用法。 import numpy as np import pylab as pl import matplotlib.font_manager as fm #设置字体 myfont = fm.FontProperties(fname=r'C:\Windows\Fonts\STKAITI.ttf') #自变量取值范围 t = np.arange(0.0, 2.0*np.pi, 0.01) #计算正弦函数值 s = n
Python小屋屋主
2018/04/16
4.9K0
Python绘制带有中文标签和图例的图
roughnet绘制带有纹理填充的网络图
R语言数据分析指南
2023/08/18
1550
roughnet绘制带有纹理填充的网络图
DNN在搜索场景中的应用
DNN在搜索场景中的应用潜力,也许会比你想象的更大。 --《阿里技术》 1.背 景 搜索排序的特征在于大量的使用了LR,GBDT,SVM等模型及其变种。主要在特征工程,建模的场景,目标采样等方面做了很细致的工作。但这些模型的瓶颈也非常的明显,尽管现在PS版本LR可以支持到50亿特征规模,400亿的样本,但这看起来依然是不太够的,现在上亿的item数据,如果直接使用id特征的话,和任意特征进行组合后,都会超出LR模型的极限规模,对于GBDT,SVM等模型的能力则更弱,而我们一直在思考怎么可以突破这种模型的限制
昱良
2018/06/25
3.7K0
OpenCV画直线,画圆,画椭圆,画矩形,绘制文字
这个没什么可说的,就是需要知道OpenCV里画这些东西的API是什么就可以了。直接上代码,具体注释看代码即可。 #include<iostream> #include<opencv2/opencv.hpp> using namespace std; using namespace cv; void drawLine(Mat &image); void drawRectangle(Mat& image); void drawEllipse(Mat& image); void drawCricle(Mat&
zy010101
2020/03/18
4K0
OpenCV画直线,画圆,画椭圆,画矩形,绘制文字
使用 Win2D 绘制带图片纹理的圆(或椭圆)
发布于 2018-11-11 21:50 更新于 2018-11-28 08:25
walterlv
2020/02/10
7180
CSS 绘制「漫画」场景
CSS 这块内容,一直是想着放下,然后又拿起来,反复了好几次,然后发现现在的 CSS 变化太大了,想要全部涉猎挺难的。一个属性在某个阶段可能使用比较多,也就记住了,但不久之后可能也就忘了,或者仅有一个印象而已。
前端黑板报
2021/09/15
3840
CSS 绘制「漫画」场景
模拟数据在实际场景中的应用
我们在做数据统计类的测试时,往往需要准备各种源数据,如果是本系统的内部产生的数据,还好处理,但如果是一些对接第三方的数据报表测试,该如何展开呢?本文通过两种常见的场景来做一些分享。
CKL的思考
2023/02/01
1.2K0
在Unity场景中控制日夜的轮转
一、介绍 目的:通过在Unity场景中添加C#脚本完成日夜轮转的效果。 软件环境:Unity 2017.3.0f3,VS2013 二、操作过程 通过拖拽场景中的Directional Light我们知道,只要控制好平行光的旋转就可以模拟出轮转的更替,所以我们要在Directional Light中添加相应的脚本文件。 (如何添加脚本文件,可参考 Unity入门教程(上)) C#代码如下: using System.Collections; using System.Collections.Generic;
Zoctopus
2018/06/04
2K0
JS 中 this 在各个场景下的指向
很多时候, JS 中的 this 对于咱们的初学者很容易产生困惑不解。 this 的功能很强大,但需要一定付出才能慢慢理解它。
前端小智@大迁世界
2019/08/14
4.4K0
原 在PostgreSQL中秒级完成大表添加带有not null属性并带有default值的实验
近期同事在讨论如何在PostgreSQL中一张大表,添加一个带有not null属性的,且具有缺省值的字段,并且要求在秒级完成。 因为此,有了以下的实验记录: 首先我们是在PostgreSQL 10下做的实验: postgres=# select version(); version ---------------
王果壳
2018/05/17
8.2K0
在Unity场景中控制日夜的轮转
一、介绍 目的:通过在Unity场景中添加C#脚本完成日夜轮转的效果。 软件环境:Unity 2017.3.0f3,VS2013 二、操作过程 通过拖拽场景中的Directional Light我们知道,只要控制好平行光的旋转就可以模拟出轮转的更替,所以我们要在Directional Light中添加相应的脚本文件。 (如何添加脚本文件,可参考 Unity入门教程(上)) C#代码如下: using System.Collections; using System.Collections.Generic;
Zoctopus
2018/06/20
1.8K0

相似问题

如何在传单中绘制提索特椭圆(Tissot‘)

23

用Java绘制带有椭圆的时钟

14

在Java中绘制椭圆

31

在matplotlib中绘制椭圆

26

在Matlab中绘制椭圆

163
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文