C# 实现 已知矩形长边两点坐标和矩形的宽度求矩形顶点坐标
时间: 2023-09-01 14:09:38 浏览: 100
假设已知矩形长边的两个端点坐标为 (x1, y1) 和 (x2, y2),矩形的宽度为 w。
首先,我们需要求出矩形长边的斜率 k:
k = (y2 - y1) / (x2 - x1)
然后,根据斜率 k 和矩形的宽度 w,我们可以求出矩形长边的法线向量 n:
n = (-k, 1) 或者 (k, -1)
接下来,我们需要求出矩形的四个顶点坐标。假设矩形长边的左端点为 (x1, y1),法线向量为 n,则矩形的四个顶点坐标分别为:
(x1 + w * n.x, y1 + w * n.y)
(x2 + w * n.x, y2 + w * n.y)
(x2 - w * n.x, y2 - w * n.y)
(x1 - w * n.x, y1 - w * n.y)
其中,n.x 和 n.y 分别表示法线向量 n 的 x 和 y 分量。
相关问题
c# 实现已知矩形形相邻两点的坐标和宽度,求另外两点的坐标
假设已知的两个相邻点的坐标为 (x1, y1) 和 (x2, y2),矩形的宽度为 w,高度为 h。为了求出另外两个点的坐标,我们可以按照如下步骤进行:
1. 计算矩形的中心点坐标:
```
float centerX = (x1 + x2) / 2;
float centerY = (y1 + y2) / 2;
```
2. 计算矩形的长和宽的一半:
```
float halfWidth = w / 2;
float halfHeight = h / 2;
```
3. 根据矩形中心点坐标和长宽一半,计算出矩形的四个顶点坐标:
```
float left = centerX - halfWidth;
float top = centerY - halfHeight;
float right = centerX + halfWidth;
float bottom = centerY + halfHeight;
```
因此,另外两个点的坐标为 (left, top) 和 (right, bottom)。
C#已知矩形三个点的坐标,生成固定长度的矩阵
在C#中,如果你已经有了一个矩形的三个边界点的坐标,比如左上角(Ax, Ay)、右下角(Bx, By),并且你想生成一个固定长度(例如宽度和高度相等的矩阵或图像),你可以按照以下步骤操作:
1. 确定矩形的尺寸:首先计算宽度和高度,宽度为Bx - Ax,高度同样为By - Ay。
2. 创建矩阵:由于你需要的是固定长度矩阵,可以创建一个二维数组或者`List<List<int>>`来表示这个矩阵。假设矩阵大小为Mx*Ny,其中Mx等于宽度除以你想要的每个小格的宽度,Ny等于高度除以每个小格的高度。如果除法结果不是整数,可能需要取整并处理边缘。
```csharp
int cellWidth = 指定的宽度;
int cellHeight = 指定的长度; // 如果宽度和高度一样,cellHeight也可以用cellWidth代替
int Mx = (int)Math.Ceiling((double)(Bx - Ax) / cellWidth);
int Ny = (int)Math.Ceiling((double)(By - Ay) / cellHeight);
// 初始化矩阵
List<List<int>> matrix = new List<List<int>>(Mx);
for (int i = 0; i < Mx; i++) {
matrix.Add(new List<int>(Ny));
}
```
3. 填充矩阵:遍历矩阵,将每个元素设为初始值(比如0或某个颜色代码),然后根据实际需求填充内容。这通常涉及到判断当前像素是否在矩形范围内。
注意:这里假设你是想生成一个二维数据结构表示矩形区域,如果是图形界面中的UI元素,那么可能需要使用更高级的技术,如Windows Forms或WPF控件。
阅读全文