Math 如何绘制具有2个点和坡度的平行四边形

Math 如何绘制具有2个点和坡度的平行四边形,math,shapes,Math,Shapes,我有一个起点(x0,y0),一个终点(x2,y2)和一个斜率(在(x0,y0)和(x3,y3)之间的直线),我想画一个平行四边形 (x0,y0) (x1,y1) __________ \ \ \ \ \_________\ (x3,y3) (x2,y2) 谁能告诉我怎么做?或者建议一些算法或者其他什么 编辑:此处y0=y1和y2=y3 关于您没有足够的数据。只有两个点和一个斜率,就

我有一个起点(x0,y0),一个终点(x2,y2)和一个斜率(在(x0,y0)和(x3,y3)之间的直线),我想画一个平行四边形

(x0,y0)       (x1,y1)
     __________
     \         \  
      \         \
       \_________\ 
    (x3,y3)      (x2,y2)
谁能告诉我怎么做?或者建议一些算法或者其他什么

编辑:此处y0=y1和y2=y3


关于

您没有足够的数据。只有两个点和一个斜率,就有无限多个可能的平行四边形(两点和一个斜率只定义了两条平行线,而不是平行四边形)

从您的绘图中,您似乎在寻找具有水平边界的平行四边形,如果是这样,它将为您提供第二个坡度,您将得到y0=y1和y2=y3

通过以下方式使用斜坡获得x3:

x3 = ((y3-y0)/slope) + x0
只有x1仍然未知:

x1 = x0 + (x2-x3)

显然,我并没有检查所有退化的情况,当你们并没有解或无限解时。我把它留给其他人。

您没有足够的数据。只有两个点和一个斜率,就有无限多个可能的平行四边形(两点和一个斜率只定义了两条平行线,而不是平行四边形)

从您的绘图中,您似乎在寻找具有水平边界的平行四边形,如果是这样,它将为您提供第二个坡度,您将得到y0=y1和y2=y3

通过以下方式使用斜坡获得x3:

x3 = ((y3-y0)/slope) + x0
只有x1仍然未知:

x1 = x0 + (x2-x3)

显然,我并没有检查所有退化的情况,当你们并没有解或无限解时。如果我们把斜率表示为
m
,假设
y0=y1
y3=y2
,那么我们可以这样计算
x3

m = (y3 - y0) / (x3 - x0)
y3 = y2
m = (y2 - y0) / (x3 - x0)
m*x3 - m*x0 = y2 - y0
m*x3 = y2 - y0 + m*x0
x3 = (y2 - y0 + m*x0) / m
同样地:

m = (y2 - y1) / (x2 - x1)
y1 = y0
m = (y2 - y0) / (x2 - x1)
m*x2 - m*x1 = y2 - y0
-m*x1 = y2 - y0 - m*x2
x1 = -(y2 - y0 - m*x2) / m

如果我们将斜率表示为
m
,并假设
y0=y1
y3=y2
,那么我们可以这样计算
x3

m = (y3 - y0) / (x3 - x0)
y3 = y2
m = (y2 - y0) / (x3 - x0)
m*x3 - m*x0 = y2 - y0
m*x3 = y2 - y0 + m*x0
x3 = (y2 - y0 + m*x0) / m
同样地:

m = (y2 - y1) / (x2 - x1)
y1 = y0
m = (y2 - y0) / (x2 - x1)
m*x2 - m*x1 = y2 - y0
-m*x1 = y2 - y0 - m*x2
x1 = -(y2 - y0 - m*x2) / m

通常,如果平行四边形的边与轴不平行:

z0和z1的公式为:

z0 = {  Cos[phi]^2 (X2 + (Y0 - Y2) Cot[theta]) + 
        Cos[phi] (Y0 - Y2 + (X0 - X2) Cot[theta]) Sin[phi] + X0 Sin[phi]^2, 

        Y0 Cos[phi]^2 + 
        Cos[phi] (X0 - X2 + (-Y0 + Y2) Cot[theta]) Sin[phi] + 
        (Y2 + (-X0 + X2) Cot[theta]) Sin[phi]^2
     }

z1 = {  Csc[theta] (Cos[phi - theta] ((-Y0 + Y2) Cos[phi] + X2 Sin[phi]) - 
        X0 Cos[phi] Sin[phi - theta]), 

        Y2 Cos[phi]^2 + 
        Cos[phi] (-X0 + X2 + (Y0 - Y2) Cot[theta]) Sin[phi] + 
        (Y0 + (X0 - X2) Cot[theta]) Sin[phi]^2
     }

通常,如果平行四边形的边与轴不平行:

z0和z1的公式为:

z0 = {  Cos[phi]^2 (X2 + (Y0 - Y2) Cot[theta]) + 
        Cos[phi] (Y0 - Y2 + (X0 - X2) Cot[theta]) Sin[phi] + X0 Sin[phi]^2, 

        Y0 Cos[phi]^2 + 
        Cos[phi] (X0 - X2 + (-Y0 + Y2) Cot[theta]) Sin[phi] + 
        (Y2 + (-X0 + X2) Cot[theta]) Sin[phi]^2
     }

z1 = {  Csc[theta] (Cos[phi - theta] ((-Y0 + Y2) Cos[phi] + X2 Sin[phi]) - 
        X0 Cos[phi] Sin[phi - theta]), 

        Y2 Cos[phi]^2 + 
        Cos[phi] (-X0 + X2 + (Y0 - Y2) Cot[theta]) Sin[phi] + 
        (Y0 + (X0 - X2) Cot[theta]) Sin[phi]^2
     }

是否
y0==y1
y3==y2
?为了将来参考,您不需要在标题中添加
[SOLVED]
。是否
y0==y1
y3==y2
?为了将来参考,您不需要在标题中添加
[SOLVED]
。非常感谢,我以后可能需要这些。非常感谢,我以后可能需要这个。当做