标签: ellipse

android ellipsize multiline textview

我需要椭圆化多行文本视图.我的组件足够大,可以显示椭圆至少4行,但只显示2行.我试图改变组件的最小和最大行数,但它什么都没改变.

android ellipse multiline textview

159
推荐指数
8
解决办法
10万
查看次数

如何将数据椭圆叠加在ggplot2散点图上?

我有一个R函数,它为散点图产生95%置信度椭圆.输出看起来像这样,每个椭圆(50行)默认为50个点:

           [,1]         [,2]
 [1,]  0.097733810  0.044957994
 [2,]  0.084433494  0.050337990
 [3,]  0.069746783  0.054891438
Run Code Online (Sandbox Code Playgroud)

我想在ggplot2散点图上为每个级别的一个名为'site'的因子叠加一些这样的省略号,由这个命令生成:

> plat1 <- ggplot(mapping=aes(shape=site, size=geom), shape=factor(site)); plat1 + geom_point(aes(x=PC1.1,y=PC2.1))
Run Code Online (Sandbox Code Playgroud)

这是在一个数据集上运行,调用dflat如下所示:

site      geom         PC1.1        PC2.1       PC3.1        PC1.2       PC2.2
1 Buhlen 1259.5649 -0.0387975838 -0.022889782  0.01355317  0.008705276  0.02441577
2 Buhlen  653.6607 -0.0009398704 -0.013076251  0.02898955 -0.001345149  0.03133990
Run Code Online (Sandbox Code Playgroud)

结果很好,但是当我尝试添加椭圆时(假设这个网站叫做"Buhlen"):

> plat1 + geom_point(aes(x=PC1.1,y=PC2.1)) + geom_path(data=subset(dflat, site="Buhlen"),mapping=aes(x=ELLI(PC1.1,PC2.1)[,1],y=ELLI(PC1.1,PC2.1)[,2]))
Run Code Online (Sandbox Code Playgroud)

我收到一条错误消息: "Error in data.frame(x = c(0.0977338099339815, 0.0844334944904515, 0.0697467834016782, : arguments imply differing number of rows: 50, 211

我过去曾设法解决这个问题,但我不记得怎么做了.似乎geom_path依赖于相同的点而不是绘制新的点.任何帮助,将不胜感激.

r ellipse scatter-plot ggplot2

21
推荐指数
2
解决办法
2万
查看次数

如何用两点和半径大小计算椭圆的中心

在将Internet Explorer的SVG实现基于其自己的VML格式时,我遇到了将SVG椭圆弧转换为VML椭圆弧的问题.

在VML中,弧由下式给出:椭圆上的两个点和半径的长度的两个角度.在SVG中,弧由下式给出:椭圆上的两个点的两对坐标和椭圆边界框的大小

因此,问题是:如何将椭圆上的两个点的角度表示为两对坐标.一个中间问题可能是:如何通过曲线上一对点的坐标找到椭圆的中心.

更新:让我们有一个前提条件,即通常放置椭圆(其半径与线性坐标系轴平行),因此不应用旋转.

更新:此问题与svg:ellipse元素无关,而与svg:path元素中的"a"椭圆弧命令无关(SVG路径:椭圆弧曲线命令)

math geometry svg vml ellipse

19
推荐指数
2
解决办法
2万
查看次数

在XAML中,如何将椭圆保持为圆?

我害怕XAML盲目.我正在开发一个MS Surface应用程序,我在ScatterViewItem(最终用户可以调整大小的容器)中有一个椭圆.我想保持椭圆为圆(宽度==高度)并保持尽可能大(对于椭圆的宽度/高度属性,应采用SVI宽度/高度的最小值).

优选仅使用XAML解决方案(使用属性触发器或类似方法).

一如既往地非常感谢您的帮助.

wpf triggers properties ellipse

19
推荐指数
3
解决办法
2万
查看次数

如何用椭圆类绘制圆扇区?

我想在WP7上创建一个圆圈.我尝试用椭圆类来做这个,我发现了很多解决方案,它可以制作量表或饼图或其他东西,但我只需要精华.有人可以帮忙吗?

目的是仅显示圆的一部分(或椭圆).就像图片中的黄色区域一样:

在此输入图像描述

谢谢,Laci

wpf canvas ellipse sector windows-phone-7

16
推荐指数
1
解决办法
2万
查看次数

在MATLAB中围绕数据的椭圆

我想在MATLAB中重现下图:

exampleee.png

有两类具有X和Y坐标的点.我想用一个带有一个标准偏差参数的椭圆围绕每个类,它决定了椭圆沿轴线走多远.

这个图是用另一个软件创建的,我不太清楚它是如何计算椭圆的.

这是我用于此图的数据.第一列是第二列 - 第二列 - 第三列 - 第一列.我可以gscatter用来绘制点本身.

A = [
    0   0.89287 1.54987
    0   0.69933 1.81970
    0   0.84022 1.28598
    0   0.79523 1.16012
    0   0.61266 1.12835
    0   0.39950 0.37942
    0   0.54807 1.66173
    0   0.50882 1.43175
    0   0.68840 1.58589
    0   0.59572 1.29311
    1   1.00787 1.09905
    1   1.23724 0.98834
    1   1.02175 0.67245
    1   0.88458 0.36003
    1   0.66582 1.22097
    1   1.24408 0.59735
    1   1.03421 0.88595
    1   1.66279 0.84183
];

gscatter(A(:,2),A(:,3),A(:,1))
Run Code Online (Sandbox Code Playgroud)

仅供参考,是关于如何绘制椭圆的SO问题.所以,我们只需知道绘制它的所有参数.


更新:

我同意可以将中心计算为X和Y坐标的平均值.可能我必须PRINCOMP对每个类使用主成分分析()来确定角度和形状.仍然在想...

matlab plot normal-distribution ellipse standard-deviation

15
推荐指数
1
解决办法
3万
查看次数

用多边形逼近椭圆

我正在处理地理信息,最近我需要绘制一个椭圆.为了与OGC约定兼容,我不能原样使用椭圆; 相反,我使用多边形近似椭圆,通过采用椭圆包含的多边形并使用任意多个点.

我用于为给定数量的点N生成椭圆的过程如下(使用C#和虚构的Polygon类):

Polygon CreateEllipsePolygon(Coordinate center, double radiusX, double radiusY, int numberOfPoints)
{
    Polygon result = new Polygon();
    for (int i=0;i<numberOfPoints;i++)
    {
        double percentDone = ((double)i)/((double)numberOfPoints);
        double currentEllipseAngle = percentDone * 2 * Math.PI;
        Point newPoint = CalculatePointOnEllipseForAngle(currentEllipseAngle, center, radiusX, radiusY);
        result.Add(newPoint);
    }
    return result;
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,这对我很有帮助,但我注意到它有一个问题:如果我的椭圆是'矮胖',也就是说,radiusX比radiusY大得多,那么椭圆顶部的点数就是与椭圆左侧的点数相同.

插图

这是浪费点的使用!在椭圆的上半部分添加一个点几乎不会影响多边形近似的精度,但在椭圆的左边部分添加一个点会产生重大影响.

我真正喜欢的是用多边形逼近椭圆的更好算法.我需要这个算法:

  • 它必须接受点数作为参数; 可以接受每个象限中的点数(我可以在"有问题"的位置迭代地添加点,但我需要很好地控制我使用的点数)
  • 它必须以椭圆为界
  • 它必须包含正上方,正下方,直线向左,直线到椭圆中心右侧的点
  • 它的面积应该尽可能接近椭圆的面积,当然优先考虑给定的点数(参见Jaan的答案 - 显然这个解决方案已经是最优的)
  • 多边形中的最小内角是最大的

我想到的是找到一个多边形,其中每两条线之间的角度总是相同的 - 但不仅我不知道如何产生这样的多边形,我甚至不确定是否存在,甚至如果我删除限制!

有没有人知道如何找到这样的多边形?

c# geometry polygon ellipse computational-geometry

15
推荐指数
2
解决办法
4149
查看次数

点和椭圆(旋转)位置测试:算法

如何测试点P = [xp,yp]是否在由中心C = [x,y],a,b和phi(旋转角度)给出的某个旋转椭圆的内部/外部?

此时我正在使用以下解决方案:旋转椭圆并用角度-phi指向,然后对点的位置和"非旋转"椭圆进行常见测试.

但是有很多测试点(数千),我觉得这个解决方案很慢.有没有直接和更有效的方法来获得旋转椭圆和点的位置?

我不需要代码而是算法.谢谢你的帮助.

testing algorithm position point ellipse

14
推荐指数
3
解决办法
1万
查看次数

使用matplotlib.pyplot(Python)绘制椭圆

很抱歉,如果这是一个愚蠢的问题,但是有一种简单的方法可以在Python中使用matplotlib.pyplot绘制椭圆吗?我希望有类似matplotlib.pyplot.arrow的东西,但我找不到任何东西.

使用带有draw_artist或类似功能的matplotlib.patches是唯一的方法吗?我希望有一个更简单的方法,但文档没有提供太多帮助.

谢谢你的建议!

python matplotlib ellipse

14
推荐指数
3
解决办法
4万
查看次数

从给定点到给定椭圆的距离

我有一个椭圆,由中心点,radiusX和radiusY定义,我有一个Point.我想在椭圆上找到最接近给定点的点.在下图中,那将是S1.

graph1

现在我已经有了代码,但在其中的某个地方存在逻辑错误,我似乎无法找到它.我将问题分解为以下代码示例:

#include <vector>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <math.h>

using namespace std;

void dostuff();

int main()
{
    dostuff();
    return 0;
}

typedef std::vector<cv::Point> vectorOfCvPoints;

void dostuff()
{

    const double ellipseCenterX = 250;
    const double ellipseCenterY = 250;
    const double ellipseRadiusX = 150;
    const double ellipseRadiusY = 100;

    vectorOfCvPoints datapoints;

    for (int i = 0; i < 360; i+=5)
    {
        double angle = i / 180.0 * CV_PI;
        double x = ellipseRadiusX * cos(angle);
        double y = ellipseRadiusY * sin(angle); …
Run Code Online (Sandbox Code Playgroud)

c++ math opencv ellipse

14
推荐指数
2
解决办法
1万
查看次数