Looking for cách nhanh nhất để tính toán một điểm nằm trên một đường thẳng một khoảng cách cho đi từ điểm cuối dòng:Cho một khởi đầu và điểm cuối, và một khoảng cách, tính toán một điểm dọc theo một đường
void calculate_line_point(int x1, int y1, int x2, int y2, int distance, int *px, int *py)
{
//calculate a point on the line x1-y1 to x2-y2 that is distance from x2-y2
*px = ???
*py = ???
}
Cảm ơn bạn đã trả lời, không có điều này không phải là bài tập về nhà, chỉ cần một số hack từ lĩnh vực chuyên môn bình thường của tôi.
Đây là chức năng được đề xuất bên dưới. Nó không hoạt động. Nếu tôi tính điểm mỗi 5 độ ở góc trên bên phải 90 độ của vòng tròn làm điểm bắt đầu và gọi hàm bên dưới với tâm của vòng tròn là x2, y2 với khoảng cách 4 điểm kết thúc là hoàn toàn sai. Chúng nằm bên dưới và bên phải của trung tâm và chiều dài là miễn là điểm trung tâm. Bất cứ ai có bất cứ đề nghị?
void calculate_line_point(int x1, int y1, int x2, int y2, int distance)
{
//calculate a point on the line x1-y1 to x2-y2 that is distance from x2-y2
double vx = x2 - x1; // x vector
double vy = y2 - y1; // y vector
double mag = sqrt(vx*vx + vy*vy); // length
vx /= mag;
vy /= mag;
// calculate the new vector, which is x2y2 + vxvy * (mag + distance).
px = (int) ((double) x2 + vx * (mag + (double)distance));
py = (int) ((double) y2 + vy * (mag + (double)distance));
}
tôi đã tìm thấy this giải pháp trên stackoverflow nhưng không hiểu nó hoàn toàn, bất cứ ai có thể làm rõ?
Có lẽ bạn nên sử dụng phao nổi/đôi, bởi vì bạn sẽ nhận được roundi ng lỗi. Đây có thể là một mối quan tâm. – Lucas
Điều Lucas nói. Ngoài ra, bạn có thể đọc bài của tôi trong khi tôi đã có một lỗi đánh máy. Nếu x1y1 là nguồn gốc, bạn muốn x1y1 + vxvy * (mag + distance), không phải x2y2. Tức là, bắt đầu từ nguồn gốc, bạn muốn di chuyển khoảng cách _to x2y2_ cộng với khoảng cách bổ sung, sử dụng hướng từ x1y1 đến x2y2. Mặc dù tôi nghĩ bạn có thể muốn thuật lại câu hỏi của mình. chính xác là bạn muốn làm gì? Câu hỏi như bây giờ có vẻ giống như một vấn đề trung gian. –
[Hình học: Tìm một điểm dọc theo một đường một khoảng cách nhất định từ một điểm khác!] (Http://math.stackexchange.com/questions/175896/finding-a-point-along-a-line-a-certain- khoảng cách-xa-từ-điểm khác/1630886 # 1630886) –