gpt4 book ai didi

在 Mathematica 中选择圆形区域内的点

转载 作者:行者123 更新时间:2023-12-04 10:11:23 25 4
gpt4 key购买 nike

请考虑 :

dalist = {{9, 6}, {5, 6}, {6, 0}, {0, 5}, {10, 8}, {1, 2}, {10, 4}, {1, 1}, {7, 7}, 
{6, 8}, {5, 3}, {6, 10}, {7, 4}, {1, 8}, {10, 0}, {10, 7}, {6, 3}, {4, 0},
{9, 2}, {4, 7}, {1, 6}, {10, 8}, {7, 8}, {0, 10}, {3, 4}, {0, 0}, {8, 5},
{4, 5}, {6,0}, {2, 9}, {2, 4}, {8, 4}, {7, 4}, {3, 6}, {7, 10}, {1, 10},
{1, 4}, {8, 0}, {8, 9}, {5, 4}, {2, 5}, {2, 9}, {3, 1}, {0, 6}, {10, 3},
{9, 6}, {8, 7}, {7, 6}, {7, 3}, {8, 9}};

frameCenter = {5, 5};

criticalRadius = 2;

Graphics[{
White, EdgeForm[Thick], Rectangle[{0, 0}, {10, 10}], Black,
Point /@ dalist,
Circle[frameCenter, 2]}];

enter image description here

我想创建一个测试来检查 dalist 并拒绝位于 frameCenter 特定半径内或特定半径上的点,如上所示。我过去曾使用矩形区域完成此操作,但对如何使用圆形区域进行操作感到困惑

最佳答案

这将非常有效:

In[82]:= 
Pick[dalist,UnitStep[criticalRadius^2-Total[(Transpose[dalist]-frameCenter)^2]],0]

Out[82]=
{{6,0},{10,8},{10,4},{1,1},{6,10},{10,0},{10,7},{4,0},{10,8},
{0,10},{0,0},{6,0},{7,10},{1,10},{8,0},{0,6},{10,3}}

或者,
In[86]:= Select[dalist, EuclideanDistance[#, frameCenter] > criticalRadius &]

Out[86]= {{6, 0}, {10, 8}, {10, 4}, {1, 1}, {6, 10}, {10, 0}, {10, 7}, {4, 0},
{10, 8}, {0, 10}, {0, 0}, {6, 0}, {7, 10}, {1, 10}, {8, 0}, {0, 6}, {10, 3}}

关于在 Mathematica 中选择圆形区域内的点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7203910/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com