2010-08-05 17 views
5

Tôi đang cố gắng tìm ra một thuật toán để tìm một điểm ngẫu nhiên một khoảng cách đã đặt cách xa điểm gốc. Vì vậy, ví dụ:Vẽ một điểm cách xa một điểm cơ sở

alt text http://i34.tinypic.com/2e4vxao.png

Điều này có thể chỉ là toán học cơ bản và bộ não của tôi không làm việc được nêu ra (tha thứ cho tôi, đã không có cà phê của tôi chưa :)), nhưng tôi đã cố gắng để làm việc này ra trên giấy và tôi không đi đâu cả.

Trả lời

10

tọa độ của điểm trên vòng tròn với bán kính R và trung tâm (xc, yc):

x = xc + R*cos(a); 
y = yc + R*sin(a); 

thay đổi giá trị của góc một 0-2 * PI bạn có thể tìm thấy bất kỳ điểm nào trên đường tròn.

1

Pythagoras cơ bản.

Chọn số ngẫu nhiên từ 0 đến 50 và giải quyết h^2 = a^2 + b^2 Thêm một số phân tích ngẫu nhiên theo hướng.

+1

Cần chỉ ra rằng điều này sẽ không đưa ra một câu trả lời đó là phân bố đều trong cách mà hầu hết mọi người mong đợi. Thay vào đó, phương pháp này (được sử dụng, ví dụ, trên vòng tròn đơn vị) sẽ có xu hướng ưu tiên các điểm gần (1,0) và (-1,0) (hoặc (0,1) và (0, -1) tùy thuộc vào cách thức bạn thực hiện nó). –

+0

@Peter - Tốt. Và mật độ, tôi tin rằng, nên là tội lỗi() hoặc cos(). – ysap

5

Sử dụng góc từ đỉnh như đầu vào ngẫu nhiên của bạn.

Mã giả:

angle = rand(0,1) 
x = cos(angle * 2 * pi) * Radius + x_centre 
y = sin(angle * 2 * pi) * Radius + y_centre