我尝试了几种不同的解决方案但到目前为止没有运气.
- (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 - …假设我有这样一个多边形
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;
    }
}
假设我想绘制从一边到另一边穿过多边形的红线,如下图所示:
我只知道线应该站立的垂直位置,但是我怎么知道我应该从哪个水平点开始线以及哪个水平点结束线?
我的主要目标是知道线从哪个水平点开始和在哪个点结束,以便在这条线上安排文本。
如果线在几个地方穿过形状(如下图所示),我想获得所有线的数组:
请注意,形状可以由直线和拱形组成。
以下是 Adobe Illustrator 以形状排列文本的方式:
我如何在 C# 中做到这一点?
谢谢!
注意:对于赏金,请附上 C# 中的示例。
我有两个向量.我需要找到这两者之间的交集,并做一个很好的情节.
所以,这是一个非常简单的数据框示例:
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()
现在,我可以绘制它们并手动找到交点,但是你可以让R计算这两条线之间的交点吗?
数据可以进行大幅度的跳跃,线条可以从非常水平到近乎水平.
如何确定两条3D线段是否与每条线的起点和终点的XYZ坐标相交?如果他们相交,在什么XYZ?
我只能找到2D线的答案:你如何检测两个线段相交的位置?
我在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 …