| |
|
|
- page 1 - |
|
 HofK | sur une appeler Tipp de IF hin, habe je mir la fois three.js [...] angeschaut. là [...] (entier unten) qui ersten Resultate. |
|
|
| |
|
|
| |
|
- page 30 - |
|
|
 HofK | Alle Ecken qui Dreiecke sommes im Pufferfeld qui Positionen gespeichert. Somit peux on beliebige Längen berechnen, si on qui nécessaire Indizes hat.
Aus verschiedenen Trouvé speichere je qui primären Positionen pour qui Löcher dans einem normalen array let pos = []; mittels pos.push( x, y, z ); entre.
avec cela berechnen sich qui Längen très simple. là qui Löcher aussi stärkere Krümmungen enthalten, habe Je l' Iterationsabbruch sur 90% qui ungefähren Seitenlänge qui Dreiecke gesetzt.
////////// console //////////////////////////////////////////////
let lx,ly,lz;
console.log('g.d', g.d ); //// rough side length of le triangles
for ( let i = 3; i < pos.length; i += 3 ) {// uses sqlen0 < 0.81 * dd, equals 0.9*d
lx = pos[ i ] - pos[ i - 3 ];
ly = pos[ i + 1 ] - pos[ i - 2 ];
lz = pos[ i + 2 ] - pos[ i - 1 ];
console.log('length',length( lx, ly, lz) ); // 0.9*d = 0.135
}
////////////////////////////////////////////////////////////////////
Pour cet kleine Löchlein ergeben sich folgende Werte.
 |
|
|
| |
|
|
|
 p.specht
 | merci, cela gibt´s alors. Pour FEM etc. devrait on encore qui Richtungen savons. mais cela bleibt de toute façon Spezialisten überlassen. là dans qui representation seulement Flächen vorkommen, es là mais sur Trägheitsmomente, Massenverteilungen, Materialsteifigkeiten etc. ankommt, bleibt que voici Zukunftsmusik. était aussi seulement so une concept - je hatte la fois un 16bit-Programme pour FEM, cela pas mal était. Läuft naturellement pas plus. Gruss |
|
|
| Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 11.11.2019 ▲ |
|
|
|
|
 HofK | avec FEM (Finite-Elemente-Methode) habe je mich pas beschäftigt. là nécessaire on mais Teilkörperchen des Gesamtkörpers. mon "Körper" sommes seulement Oberflächen. qui Löcher erzeuge je pour qui Innengeometrie, siehe Beitrag vom 25.09. Ansonsten peux on qui zusammengesetzten Oberflächen simple par Überschneidung generieren. |
|
|
| |
|
|
|
 HofK | qui bisher encore fehlenden Varianten Zylinder-Zylinder sommes soweit fertig.
un verbundenes Loch:


deux Löcher:


Knappe l'affaire:

eh bien et avec ca Fleißarbeit beim Aufräumen et optimaliser des Codes. |
|
|
| |
|
|
|
 p.specht
 | |
|
| XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 16.11.2019 ▲ |
|
|
|
|
 HofK | |
|
| |
|
|
|
 p.specht
 | Laufmasche, sozusagen ... comment wär´s avec einem Ausgleichsstück, überlagernd? Zuschweissen wird wohl plutôt pas gelingen  |
|
|
| XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 20.11.2019 ▲ |
|
|
|
|
 HofK | je hatte plutôt à kleben gedacht, mais cela verschmiert cela Display. Lötzinn serait wohl abperlen et schweißen wäre chez einem alten Röhrenmonitor sûrement un schönes Implosions-Experiment.
bon alors doch lieber meinen Soft-JavaScript-Tacker benutzen!
cela Problem liegt dans den léger unterschiedlichen Umsetzungen qui Iteration. là je es pour qui unterschiedlichen Fronten nacheinander experimentell ermittelt habe, gibt es feine Unterschiede im Algorithmus. Zur Optimierung des Codes muss cela de toute façon vereinheitlicht volonté, um ähnliche /identische Codeabschnitte pas mehrfach trop avons.
qui gegenwärtige Stand ergibt qui folgende allgemeine Funktion function makeFrontPos( xyzCalc ). cette wird qui konkrete Funktion pour qui Schnittlinie transfert function xyzCalcSphHole( ) pour qui Kugel (Schnitt avec Zylinder).
Ausgangswerte volonté dans qui Triangulations-Hauptfunktion gesetzt um Parameterübergaben trop sparen. cela entspricht meiner Vorgehensweise beim Triangulationsprojekt.
Nätürlich anfangs wieder une belle Fehldarstellung. vous zeigt nochmals qui hohe Stabilität qui Triangulation chez fehlerhaften Fronten.

function makeFrontPos( xyzCalc ) {
psi = psiStart;
dpsi = Math.PI * 2 / g.detail / 16;
sqlen1 = 9 * dd;// initial
xyzCalc( );// start point
pos.push( x, y, z );
// notice start point
x0 = x;
y0 = y;
z0 = z;
si ( psi !== psiEnd ) {
psi = psiEnd;
xyzCalc( );
psi = psiStart;// initial again
}
// notice endpoint to check finish
x1 = x;
y1 = y;
z1 = z;
tandis que ( sign > 0 ? psi < psiEnd && ( sqlen1 > 5.76 * dd || psi < ( psiEnd - psiStart ) / 2 ) : psi > psiEnd && ( sqlen1 > 5.76 * dd || psi > ( psiStart - psiEnd ) / 2 ) ) {
// (adaptive-deformed) circle
psi0 = psi;
sqlen0 = 0;
tandis que ( sqlen0 < 0.81 * dd ) {
psi += sign * dpsi;
xyzCalc( );
dx = x - x0;
dy = y - y0;
dz = z - z0;
sqlen0 = squareLength( dx, dy, dz );
}
pos.push( x, y, z );
si ( slope ='dx' ) {
dyzdx = Math.abs( Math.sqrt( dy * dy + dz * dz ) / dx );
dyzdx = dyzdx > 1 ? 1 : dyzdx;
dpsi = Math.abs( psi - psi0 ) * dyzdx / 16;
} d'autre {// 'dy'
dxzdy = Math.abs( Math.sqrt( dx * dx + dz * dz ) / dy );
dxzdy = dxzdy > 1 ? 1 : dxzdy;
dpsi = Math.abs( psi - psi0 ) * dxzdy / 16;
}
x0 = x;
y0 = y;
z0 = z;
dx = x - x1;
dy = y - y1;
dz = z - z1;
sqlen1 = squareLength( dx, dy, dz );
}
// possibly a intermediate point
si( sqlen1 > 1.44 * dd ) {
psi += ( psiEnd - psi ) / 2 ;
/* or
a = y1 === 0 ? 3 : 2;
psi += a * ( psiEnd - psi ) / 4;
*/
xyzCalc( );
pos.push( x, y, z );
}
si( !openFrt ) pos.push( x1, y1, z1 );
}
 |
|
|
| |
|
|
|
 HofK | qui Ergänzung qui Fronten zur Anpassung de Zylinder et Kugel à qui Enden des Zylinders hat plus travail gemacht comme gedacht.
mais so sieht es entier praktikabel aus.


qui paramètre des Beispiels. Unten passt un Zylinder tour, dessus une Kugel.
const parameters = {
d: 0.15,// rough side length of le triangles
div4: 15,// division of le quarter circle
geoBtm:'cylinder', // 'cylinder', 'sphere', solid to être adapted
bottom: -3.0,
div4Btm: 34,// division bottom adaptation, (to quarter, >= div4)
phiBtm: 0,// rotation of adaptive-deformed circle (Bottom)
excBtm: 1.8049,
//tiltBtm: 0.0, // tilt of bottom adaption ( -PI/2 < tilt < PI/2 )
geoTop:'sphere', // 'sphere', solid to être adapted
top: 1.0,
div4Top: 34,// division top adaptation, (to quarter, >= div4)
phiTop: 0,// rotation of adaptive-deformed circle (Top)
excTop: 1.8049,
//tiltTop: 0.0, // tilt of top adaption ( -PI/2 < tilt < PI/2 )
holes: [
// unit: '%' of le radius, 'd' factor to d, 'v' value
// hole to conect a sphere: [ 'sphere', div4AdpSph, y, phi, exc, unit ]
['sphere', 16, -1.11, 0, 2.686, 'v' ],
// hole to conect a cylinder: [ 'cylinder', div4AdpCyl, y, phi, exc, unit, tilt, <optional: side> ]
['cylinder', 8, -2.2, 1.57, 50, '%', -0.22, '+-' ],
//points hole,: array of points y, phi, ... (charge point is connected to first)
[ 0.15,0.45, 0.5,0.9, 0.8,0.6, 0.75,-0.2, 0.1,-0.15 ]
]
}
Es étions quelques Funktionen trop gestalten.

eh bien sommes encore "Restarbeiten" nötig.  |
|
|
| |
|
|
|
 p.specht
 | Gratulation! cela était sûrement une grössere Hürde! maintenant wären wahrscheinlich quelque chose comme comment Makros hilfreich, qui qui Fälle unterscheiden aider - sonst bleibt es main-/Kopfarbeit. comment sieht es incidemment avec Bemaßung aus? |
|
|
| XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 08.12.2019 ▲ |
|
|
|
|
 HofK | Bemaßungen sommes ne...aucune Problem, habe je mais pas vorgesehen. on zeichnet Linien et kleine Dreiecke comme Spitzen. qui Les chiffres peux on sur différent Weise erzeugen. Beispielsweise so, comment je es pour mon NumbersHelper gemacht habe, z.B. [...] 
Zwischendurch habe je pour long Zeit wieder la fois shader betrachtet. [...]  et mir encore une autre l'affaire "eingehandelt" comme je sur une kleinen faute gestolpert suis. [...]  |
|
|
| |
|
|
|
 p.specht
 | Maßzahlen, qui pas mitdrehen: Wow, super!
comment pourrait on une Schnittebene dans cela objet poser, si seulement qui derrière elle-befindliche partie gezeichnet wird (z.B. Stockwerkspläne) ? |
|
|
| Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 10.12.2019 ▲ |
|
|
|