I want to gather points in triangle and stokes

1 Ansicht (letzte 30 Tage)
bil bbil
bil bbil am 23 Mär. 2014
Kommentiert: bil bbil am 23 Mär. 2014
hello
*I have an array of 80 points
*want to gather points in triangle and the result stored in an array:
  • %angle
*A1 = atan2 (abs ((x2-x1) * (y3-y1) - (x3-x1) * (y2-y1)), ... (x2-x1) * (x3-x1) + (y2-y1) * (y3-y1));
*A2= atan2 (abs ((x1-x2) * (y3-y2) - (x3-x2) * (y1-y2)), ... (x1-x2) * (x3-x2) + (y1-y2) * (y3-y2));
*A3=...
  • %Distance:
  • d1 = norme (P2-P1);
  • d2 = norme (P3-P1);
  • d3 = norme (P3-P2);
*%
*I think 3 loop For
  1 Kommentar
Roger Stafford
Roger Stafford am 23 Mär. 2014
Bearbeitet: Roger Stafford am 23 Mär. 2014
I understand that you have correctly computed the inner angles and side lengths of a triangle from the coordinates of its three vertices. However, that is where my understanding ends. I am unable to extract a meaningful question from the wording "I want to gather points in triangle and stokes." Could you please elaborate on that? My crystal ball is rather cloudy this morning.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Roger Stafford
Roger Stafford am 23 Mär. 2014
@bil bbil: After consulting your prior question #122689, "how to store all the results in a table with index", it would appear that the triangle calculations are only an incidental part of your inquiry. What you seem to want to do is to store 80!/3!/77! = 82160 sets of results, each set consisting of perhaps nine quantities, in some kind of "table". That is one set for each possible combination of three different points as vertices of a triangle.
It is easy to fill a two-dimensional array with such results. It would have 82160 rows and, say, 9 columns. Your three nested for-loops can be used for this purpose.
T = zeros(82160,9); % <-- This is the big "table" array
k = 0; % k will be its row index
for i1 = 1:78
for i2 = i1+1:79
for i3 = i2+1:80
k = k + 1;
% Compute angles & sides for triangle indexed with i1, i2, and i3
T(k,:) = [i1,i2,i3,d1,d2,d3,A1,A2,A3]; % Store them in k-th row
end
end
end
That's the easy part. What you need in addition to this is some magic function that you can hand a set of indices i1, i2, i3, and access the corresponding row, k, in T. Of course the 'find' function could be used for that purpose, but it would be painfully slow for an array this large. There is a much faster way of deriving the proper row number, k, given i1, i2, & i3, but since all this is mere conjecture on my part, I will hold off constructing that "faster" function until you state definitely that this is indeed what you were really asking for in this question.

Weitere Antworten (0)

Kategorien

Mehr zu Computational Geometry finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by