Find expression that represent dots quantity in terms of radius

231 Views Asked by At

For $n$ dots, such that $n=10$: vertex_img pick a pivot, such that $p=[8, 11]$, calculate the distance to each: distance_img

let let $r_{min} = $ smallest radius distance, which in all cases $0$
let $r_{max} = $ largest radius distance, which in this case $16$

Perform a circular expansion originated from $[8, 10]$ from $t_0 \rightarrow t_1$, where $t_0 = 0$ & $t_1 = 1$.

Both time and radius increment evenly, which

At $t_0$, $r_0 = r_{min} = 0$
At $t_1$, $r_1 = r_{max} = 16$

Question:

let

  1. quantity of dots be $n$
  2. vertexes of dots be $[[x_1, y_1], [x_2, y_2] ..]$
  3. pivot be $p = [x_p, y_p]$
  4. circular expansion starts at $t_0 = r_0 = r_{min}= 0$
  5. circular expansion end at $t_0 = 1$ & $r_1 = r_{max}$

Find $n(r)$, that $\int_{r_{min}}^{r_{max}} n(r) \,dr = n$

for the example above, here are some expected results:

  • $\int_{0}^{2} n(r) = 2$
  • $\int_{0}^{3} n(r) = 3$
  • $\int_{0}^{7} n(r) = 7$
  • $\int_{0}^{16} n(r) = 10$

The function should reflect in which segment of radius increment, there are relatively a large amount of dots getting covered, therefore, for any interval, for example, $n(6)$ the function should returns a decimal, perhaps approximately $6.7$


Thanks very much for reading to the end. I am not certain if I have spoken with enough clarity. It's a vague idea, I am not sure if it's tangible at all. I will be so excited if someone give me a hand.
1

There are 1 best solutions below

1
On BEST ANSWER

We consider that the distances to the pivot point are ranked in increasing order, i.e., $r_k$ = distance to the $k$th closest point with $r_0=0$.

Your issue boils down to a linear interpolation between the following points :

$$(x,y)=(r_k, k)$$

(of course not in the same plane as the initial plane !).

Otherwise said, your function is affine on each interval $(r_k,r_{k+1})$ with:

$$\text{If} \ \ r_k \le x \le r_{k+1}, \ \ \ n(x)=\dfrac{(x-k)}{(r_{k+1}-r_k)}+k$$

Matlab program for the figure:

A=[...
10, 2, 6, 8, 7,11,16, 8,11,20
17,15,12,11, 8, 5, 5, 4, 2, 0];% coordinates
n=size(A,2);% number of points
p=4;% pivot rank;
for k=1:n
    r(k)=norm(A(:,k)-A(:,p));% distances
end;
r=sort(r);% distances sorting
for k=0:n-2;
    plot([r(k+1),r(k+2)],[k,k+1]);
end;
for k=0:n-1;
    plot(r(k+1),k,'or');
end;

enter image description here