- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在处理一个图形编辑器的功能,我正在编辑圆弧,当形状是椭圆时,QPainterPath::arcTo 的行为并不像我预期的那样;当它是一个圆圈时,它按预期工作。
下面的两张图片显示了结果。在第一种情况下,我创建了一个圆,然后将其转换为初始起始角为 45 度、跨度角为 270 度的圆弧。场景坐标空间为正方形。对角线呈 45 度角。正如预期的那样,圆弧的端点正好在对角线上。
在第二种情况下,我有一个椭圆,它以完全相同的方式分别转换为 45 度角和 270 度角的圆弧。圆弧的终点不再落在对角线上,这不是我所期望的。
在这两种情况下,绘制代码都是:
painter.arcTo (rect, 45, 270);
零度位于 3 点钟位置,我曾认为指定的角度是在该角度与从中心点到圆弧边缘点的直线之间测量的。显然,还有其他事情正在发生,我不明白并且似乎没有记录在 QPainter::arcTo 描述中。
这是一个问题,因为我正在编写代码来 reshape 弧形,并且当我只有当前鼠标位置和包围矩形的中心点时,我需要能够处理背景。现在,当我 reshape 弧形时,我计算的角度仅准确为 0、90、180 和 270。我越接近中间的 45 度角,我的角度就越远。
我通过以下方式获得该角度:
QLineF (rect.center(), mouse_pos).angle ();
同样,对于圆圈,这非常有效。对于非圆形椭圆,它不会。
写完之后,我找到了这个beautiful illustration ,这恰恰说明了我正在处理的事情。不幸的是,Postscript 解决方案对我没有帮助。我需要知道如何计算正确的角度。
最佳答案
我找到了答案 here .如我所料,我对角度的理解是错误的。要执行我的鼠标跟踪以 reshape 弧形,我需要找到一条线段与一个椭圆的交点,然后从参数椭圆方程逆向计算以找到正确的角度。
关于qt - QPainterPath::arcTo 上的角度是如何解释的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40010114/
SVG specification 中的 ARCTO 与我们在 Canvas 中的有很大不同。我有一个用例,我将根据 SVG 规范获取数据,但我需要在 Canvas 上绘制它。 我试过这个,但我想我的
我有以下 QML 文件,它绘制一个绿色圆圈(通过 QML 矩形)并在圆圈上绘制一个黑色圆弧(通过 Canvas 和 arcTo)。圆的位置和半径取决于窗口的大小。对于大多数尺寸来说,这似乎工作得很好,
我正在处理一个图形编辑器的功能,我正在编辑圆弧,当形状是椭圆时,QPainterPath::arcTo 的行为并不像我预期的那样;当它是一个圆圈时,它按预期工作。 下面的两张图片显示了结果。在第一种情
我正在玩 HTML5 canvas,我的书上是这么说的 latest browser supports arcTo method and it has capabilities to remove a
所以我再次处理环形扇区,这不是我的强项。我可以在 Canvas 上很好地使用 .arc 方法,问题来自需要我的弧线成为路径的一部分。 例如: ctx.save(); ctx.arc(centerX
我正在尝试制作眼睛的白色部分: 但我不知道我做错了什么,也许这不是假设使用 arcTo,问题是我如何做眼 Angular ? function main() { var c2d = docum
我正在尝试绘制一个带圆角的矩形。我有一个执行此操作的 javascript 路径,但 javascript arcTo 方法采用一个矩形(定义其椭圆形),然后是一个设置扫描的参数。 但是,在 Andr
我有一个 List我希望能够添加到场景图形或绘制到 Canvas 。第一个很简单,因为我可以创建一个 Path 节点并将其添加到场景中。第二个需要来自 PathElement 的映射's to cal
我有 2 个点,由一条线连接,即起点和终点。 我想在它们之间绘制一条圆弧,但半径应该是动态的,具体取决于用户单击的位置。因此我有一个来自鼠标的第三个点,带有 XY 坐标。 如何绘制 ctx.arcTo
我想画出这样一条路径并填充它: 如果原点是坐标为 (x, y) 的红点。我应该在下面的三重点中写什么来绘制这条路径。我已经尝试了很多,但无法弄清楚 arcTo 是如何工作的。 path.mov
我正在制作一个我想用 JavaFX 制作的游戏的原型(prototype)。它需要角色/ Sprite 沿着弯曲的路径向前移动(基本上是向前跳跃到特定位置)。我尝试使用MoveTo(使用 Sprite
在以下代码中使用 arcTo 时出现错误,使用的是 Kinetic.js 5.1.0。 错误是'TypeError: context.arcTo is not a function' myshape
我已经成功地开始以 0 到 360 度的角度扫描,从而实现了一个动画绘图环。然而,当环的尾部以 360 度角与环的头部相遇时,所有绘图都消失了。 这是我在onDraw() 中的圆环代码
我在 Nexus 7 上运行我的代码,同时它仍然安装了 Android 4.3。然后我升级到 Android 4.4 并再次运行我的代码。以下是我对一个奇怪的 Canvas.drawArc()/Pat
我是一名优秀的程序员,十分优秀!