簡體   English   中英

如何使用MATLAB查找3D空間中圓內的點的坐標?

[英]How can I find co-ordiantes of points inside a circle in 3D space using MATLAB?

我使用以下代碼在MATLAB中創建了一個圓。 我需要在3D空間中找到圓內的點

    radius = 5;
    theta=linspace(0,2*pi);
    rho=ones(1,100).*radius;

    [x,z]=pol2cart(theta,rho);

    y=center(2)*ones(1,length(x))
    fill3(x,y,z,'yellow')

如何找到該圓內點的笛卡爾坐標?

不確定我是否很好地理解了您的問題。 顯然,圓內有無限個點,所以我想您想檢查一個點(或一組點)是否在里面。 如果遍歷點列表,則符合以下條件的點在內部(或在圓的周界中):

 norm([xi,zi]) <= radius
 yi = 0 (same plane)

這是您在問的嗎?

編輯:您可以在Matlab中快速完成此操作,而無需循環。 假設您有x = [1 2 3]和z = [4 5 6]。 要檢查所有組合,可以使用帶有x和z'(橫向)的repmat來獲得:xr = [1 2 3; 1 2 3; 1 2 3]和zr = [4 4 4; 5 5 5; 6 6 6]。 因此,您有2個矩陣,其中包含所有可能點的坐標。 現在您可以將范數計算為: N = sqrt(xr.^2+zr.^2) Nij <= radius所有i,j都在圓內(考慮到所有x和z均<=當然是半徑)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM