标签: line-intersection

我有一条从圆心到另一点的直线.我想找到线与圆周相交的点

我尝试了几种不同的解决方案但到目前为止没有运气.

- (CGPoint)contractLineTemp:(CGPoint)point :(CGPoint)circle :(float)circleRadius { 
CGFloat x,y;
x = point.x - circle.x;
y = point.y - circle.y;

CGFloat theta = atan2(x, y);

CGPoint newPoint;

newPoint.x = circle.x + circleRadius * sin(theta);
newPoint.y = circle.y + circleRadius * cos(theta);

return newPoint;
}


- (CGPoint)contractLineTemp:(CGPoint)startPoint :(CGPoint)endPoint :(float)scaleBy {

float dx = endPoint.x - startPoint.x;
float dy = endPoint.y - startPoint.y;

float scale = scaleBy * Q_rsqrt(dx * dx + dy * dy);
return CGPointMake (endPoint.x - dx * scale, endPoint.y - …
Run Code Online (Sandbox Code Playgroud)

iphone geometry line-intersection

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

计算给定水平线的形状宽度

假设我有这样一个多边形

public partial class Window2 : Window
{
    public Window2()
    {
        InitializeComponent();

        var myPolygon = new Polygon();
        myPolygon.Stroke = Brushes.Black;
        myPolygon.Fill = Brushes.LightSeaGreen;
        myPolygon.StrokeThickness = 2;

        myPolygon.Points = new PointCollection(new Point[] {
            new Point(50,50),
            new Point(50,165),
            new Point(140,165),
            new Point(140,120),
            new Point(70,120),
            new Point(80,70),
            new Point(140,70),
            new Point(140,50)
        });

        this.Content = myPolygon;
    }
}
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

假设我想绘制从一边到另一边穿过多边形的红线,如下图所示:

在此处输入图片说明

我只知道线应该站立的垂直位置,但是我怎么知道我应该从哪个水平点开始线以及哪个水平点结束线?

我的主要目标是知道线从哪个水平点开始和在哪个点结束,以便在这条线上安排文本。

如果线在几个地方穿过形状(如下图所示),我想获得所有线的数组:

在此处输入图片说明

请注意,形状可以由直线和拱形组成。

以下是 Adob​​e Illustrator 以形状排列文本的方式:

在此处输入图片说明

我如何在 C# 中做到这一点?

谢谢!

注意:对于赏金,请附上 C# 中的示例。

c# algorithm math geometry line-intersection

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

R:找到两个向量的交集

我有两个向量.我需要找到这两者之间的交集,并做一个很好的情节.

所以,这是一个非常简单的数据框示例:

df <- data.frame( id <- c(1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2),
                 p <-c(5,7,9,11,13,15,17,19,21,23,20,18,16,14,12,10,8,6,4,2 ),
                 q <-c(3,5,7,13,19,31,37,53,61,67,6,18,20,24,40,46,66,70,76,78))
colnames(df) <- c("id","price","quantity")

supply <- df[df$id == 1,]
demand <- df[df$id == 2,]

plot( x = supply$quantity,  y = supply$price, type = "l", ylab = "price", xlab = "quantity")
lines(x = demand$quantity , y = demand$price, type = "l")
grid()
Run Code Online (Sandbox Code Playgroud)

现在,我可以绘制它们并手动找到交点,但是你可以让R计算这两条线之间的交点吗?

数据可以进行大幅度的跳跃,线条可以从非常水平到近乎水平.

intersection r line-intersection

1
推荐指数
1
解决办法
4070
查看次数

相交的3D线

如何确定两条3D线段是否与每条线的起点和终点的XYZ坐标相交?如果他们相交,在什么XYZ?

我只能找到2D线的答案:你如何检测两个线段相交的位置?

3d geometry line-intersection

1
推荐指数
1
解决办法
702
查看次数

三维线与三角形之间的交点

我在3D空间的某个地方有一条线和一个三角形.换句话说,我有三个点([x,y,z]每个)三角形,和两个点(也是[x,y,z])的线.

我需要找出一种方法,希望使用C++来确定线是否曾经过三角形.与三角形平行且具有多个共同点的线应计为"不相交".

我已经制作了一些代码,但它不起作用,即使视觉表现清楚地显示了交叉点,我也总是假的.

ofVec3f P1, P2;
P1 = ray.s;
P2 = ray.s + ray.t;

ofVec3f p1, p2, p3;
p1 = face.getVertex(0);
p2 = face.getVertex(1);
p3 = face.getVertex(2);

ofVec3f v1 = p1 - p2;
ofVec3f v2 = p3 - p2;

float a, b, c, d;

a = v1.y * v2.z - v1.z * v2.y;
b = -(v1.x * v2.z - v1.z * v2.x);
c = v1.x * v2.y - v1.y * v2.x;
d = -(a * p1.x + b * p1.y …
Run Code Online (Sandbox Code Playgroud)

c++ 3d intersection line line-intersection

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

标签 统计

line-intersection ×5

geometry ×3

3d ×2

intersection ×2

algorithm ×1

c# ×1

c++ ×1

iphone ×1

line ×1

math ×1

r ×1