30.12.2020, 10:54 |
Ulrich Ruhnau |
Auf diesen Beitrag antworten » |
Anzahl der Knoten und Flächen [gelöst]
Wie man unschwer erkennt, sind die beiden Kreisstrukturen aus zufällig gefärbten Dreiecken zusammengesetzt. Die linke Struktur entspricht dem Radius und die rechte Struktur entspricht dem Radius . Gesucht sind zwei Formeln, einmal für die Anzahl der Knotenpunkte und einmal für die Anzahl der Dreiecksflächen jeweils als Funktion vom Radius .
[attach]52357[/attach][attach]52358[/attach] |
Anzahl der Flächen:
(Es sind jeweils arithmetische Reihen mit m Gliedern, d = 2) |
30.12.2020, 12:35 |
Ulrich Ruhnau |
Auf diesen Beitrag antworten » |
Zitat: |
Original von mYthos
Anzahl der Flächen:
|
Das ist richtig!
Damit ist die erste Hälfte des Rätsels gelöst. Jetzt geht es nur noch darum, eine Formel für die Anzahl der Knoten zu finden. |
07.01.2021, 12:56 |
HAL 9000 |
Auf diesen Beitrag antworten » |
Die Anzahl der Kanten bekommt man so raus:
Dreiecke haben insgesamt Kanten. Die äußeren 6m Kanten werden einfach gezählt, der Rest aber doppelt, somit ist die tatsächliche Kantenanzahl.
Die Knotenanzahl bekommt man dann über den Eulerschen Polyedersatz , d.h., es ist .
Man bekommt auch auf anderem Weg heraus, indem man die einzelnen Knotentypen unterscheidet nach der Anzahl der Dreiecke, die jeweils angrenzen:
Von den Knoten am Rand grenzen genau 6 an jeweils 2 Dreiecke, die anderen an jeweils drei Dreiecke. Die inneren (K-6m) Knoten grenzen an jeweils 6 Dreiecke. (*)
Das ergibt summa summarum , umgestellt dann ebenfalls wieder (was sonst
).
Allerdings scheint mir (*) schwerer begründbar zu sein als das oben mit den Kanten, daher ziehe ich doch den ersten Weg vor.
|
09.01.2021, 06:33 |
Ulrich Ruhnau |
Auf diesen Beitrag antworten » |
Zitat: |
Original von HAL 9000
Die Knotenanzahl bekommt man dann über den Eulerschen Polyedersatz , d.h., es ist .
|
Wunderbar hergeleitet, schön! Und weil's so schön war, habe ich noch einen Kreis mit m=20 generiert (2400 Dreiecke und 1261 Knoten).
[attach]52423[/attach]
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
|
function [a,l] = kreis3(m)
%Punkte gleichmäßig auf einen Kreis verteilen
% m = Anzahl der Stufen Mitte-Rand (Radius in Kantenlaengen)
nmax = (m+1)^3-m^3; % Anzahl der Knotenpunkte der Kreisstruktur
fmax = 6*m^2; % Anzahl der Flaechen der Kreisstruktur
x = zeros(nmax,1); % x-koordinaten der Flaechen
y = zeros(nmax,1); % y-koordinaten der Flaechen
a = zeros(fmax,3); % Dreiecksflaechen beschrieben durch Knotenpunktnummern
l = 1; % Knotenpunktzaehler
f = 1; % Flaechenzaehler
l1 = 1; % erster innerer Anfangsknoten
k1 = 2; % erster aeusserer Anfangsknoten
for j = 1:m % alle Abstaende vom Zentrum durchgehen (Mitte -> Rand)
j6 = 6 * j; % Anzahl verschiedener Winkel eines (inneren) Kreises
w = (2*pi/j6)*[0:j6-1]; % Winkel
x(l+1:l+j6) = j*cos(w); % Knoten-x-Wert
y(l+1:l+j6) = j*sin(w); % Knoten-y-Wert
l = l + j6; % Knotenzaehler anpasssen
l2 = l1; % Rundenanfang (vom Knoten im inneren Kreis)
k2 = k1; % Rundenanfang (vom Knoten im aeusseren Kreis)
for i = 1:6 % 6 Kanten abklappern (von einer Dreiecksstruktur)
for k = 1:j % die inneren Knoten einer Kante abklappern
a(f,:) = [l1,k1,k1+1]; % Dreieck aussen abspeichern
f = f + 1; % Flaechennummer hochzaehlen
k1 = k1 + 1; % aeusserer Knotenzaehler
if k == j %
break
end
a(f,:) = [l1,k1,l1+1]; % Dreieck innen abspeichern
f = f + 1; % Flaechenzaehler hochzaehlen
l1 = l1 + 1; % innerer Knotenzaehler
end
end
a(f-1,1) = l2; % Korrektur nach einer Runde (linker Knoten)
a(f-1,3) = k2; % Korrektur nach einer Runde (rechter Knoten)
if j > 1
a(f-2,3) = l2; % Korrektur nach einer Runde (linker Knoten)
end
l1 = k2; % linker Anfangsknoten fuer die naechste Runde
end
col = rand(fmax,3); % Zufallsfarben für jedes Dreieck
figure(4)
set(gca,'color',[0.6,0.6,0.6]) % grauer Hintergrund
patch('Faces',a,'Vertices',[x,y],'FaceVertexCData',col,'FaceColor','flat');
% for j=1:l
% text(x(j),y(j)+0.15,num2str(j),'color','w') %Vertex-Nummer
% end
axis equal
grid on
end
|
|
|