| |
|
|
- Página 1 - |
|
 HofK | Auf una heißen Tipp de IF hin, Yo me de tiempo three.js [...] angeschaut. Como [...] (bastante unten) el ersten Resultate. |
|
|
| |
|
|
| |
|
- Página 41 - |
|
|
 HofK | |
|
| |
|
|
|
 HofK | Im Anfängerbeispiel hay ahora en el Schritt 2 Bienen. Un Biene es una Klone el otro. Im Schritt 4 ahora una Video como Textur. Das Video se ejecuta sólo en diesem Schritt, ansonsten sitzt el Vogel sólo reglos como. En Firefox hay zuweilen Startschwierigkeiten, F5 hilft.
Im Schritt 13 bekommen el Bienen ihre Wabe. Sie es con InstancedMesh realisiert. Nur en diesem Schritt schließen y abierto el Waben.
 |
|
|
| |
|
|
|
 HofK | En CPU-Simulation funktioniert nun el Laden de Ensamblador-Archivos.
Bajo [...] puede ser para Test algunos Assemblerdateien encontrar y herunterladen. El Programas laufen aber keineswegs fehlerfrei, como todavía no todos Befehle überprüft y entsprechend korrigiert fueron. Es todavía viel Detailarbeit y kostet Tiempo.
Je mehr Yo en muy spezifische Dinge komme se deutlich, dass Reengineering anspruchsvoller es como una Sache de el Stand a programa.
Dabei Yo una Programa como Grundlage, dass Yo antes Jahren incluso erstellt habe.
Das Problema es, dass uno se gleichzeitig con zwei muy unterschiedlichen Umgebungen y Idiomas auseinandersetzen muss y uno zusätzlich siempre a el Presentación klebt. Das se para Problema, si una Sache se en el otro Umgebung überhaupt no en dieser Art y Weise umsetzen lässt.
Mein Divisionsproblem!
Como verwundert no, si uno hört, dass algunos Kernprogramme en el Bankenwesen siempre aún en COBOL laufen. Dafür hay kaum todavía aktive Programmierer de el alten Tiempo, uno ha ya nachgeschult. |
|
|
| |
|
|
|
 HofK | Zwischendurch veces otra vez de otra manera.
El Verformung de grundlegenden Geometrien como Rechteck y Cylinder ermöglicht interessante Forma.
Auf una Cuestión hin [...] ha prisoner849 alias Paul West otra vez una vez una cleveren Lösungweg angeboten. Ist en el Sammlung [...] 
Un wesentlich einfachere Variante a Veränderung el Positionen Yo como Antwort en una otro Anfrage erstellt. Ein flach gedrückter Torus. [...] 
[...] 
Der Fisch de prisoner849 brachte mich en el Concepto el Verallgemeinerung.

Base es hier una Zylinder. Als Yo el Kappen hinzufügen quería, bin I una Problema gestoßen. El Mittelpunkte el Kreise son mehrfach definiert. Auf una Anfrage [...] gab lo bisher no Resonanz. Also Yo en lugar de des Zylinders otra vez una benutzerdefinierte Geometrie producido. Diesmal aber como eigenständige BasicGeometry - abgeleitet de CylinderGeometry y stark reduziert.
function BasicGeometry( radialSegments, heightSegments, withTop, withBottom ) {
let indices = [];
let uvs = [];
let index = 0;
let indexArray = [];
let groupStart = 0;
let groupCount = 0;
for ( let y = 0; y <= heightSegments; y ++ ) {
let indexRow = [];
let v = y / heightSegments;
for ( let x = 0; x <= radialSegments; x ++ ) {
uvs.push( x / radialSegments, 1 - v );
indexRow.push( index ++ );
}
indexArray.push( indexRow );
}
let a, b, c, d;
for ( let i = 0; i < radialSegments; i ++ ) {
for ( let j = 0; j < heightSegments; j ++ ) {
a = indexArray[ j ][ i ];
b = indexArray[ j + 1 ] [ i ];
c = indexArray[ j + 1 ][ i + 1 ];
d = indexArray[ j ] [ i + 1 ];
indices.push( a, b, d );
indices.push( b, c, d );
groupCount += 6;
}
}
g.addGroup( groupStart, groupCount, 0 );
groupStart += groupCount;
let verticesCount = ( radialSegments + 1 ) * ( heightSegments + 1 )
if ( wTop ) generateCap( true );
if ( wBtm ) generateCap( falso );
g.setIndex( new THREE.BufferAttribute( new Uint32Array( indices ), 1 ) );
g.setAttribute('position', new THREE.BufferAttribute( new Float32Array( verticesCount * 3 ), 3 ) );
g.setAttribute('uv', new THREE.BufferAttribute( new Float32Array( uvs ), 2 ) );
function generateCap( top ) {
let groupCount = 0;
uvs.push( 0.5, 0.5 );
const centerIndex = index;
for ( let x = 0; x <= radialSegments; x ++ ) {
uvs.push( 0, 0 );
index ++;
}
index ++;
for ( let x = 1; x <= radialSegments; x ++ ) {
const c = centerIndex;
const i = centerIndex + x;
if ( top ) {
indices.push( i, i + 1, c );// face top
} más {
indices.push( i + 1, i, c );// face bottom
}
groupCount += 3;
}
g.addGroup( groupStart, groupCount, top ? 1 : 2 );
groupStart += groupCount;
verticesCount += radialSegments + 2;// with center
}
}
El Sache es aún en Arbeit, pero ergibt muy vielfältige Forma.

So simplemente definiert uno el Form:
// no flat smooth
// ext cadena - with top: x, f, s | with bottom: x, f, s | connected: x, c
const design = [
// max vert, ext, angle, 0 first, ... , max radial
[ 40,"ffc",314, 0, 20, 36, 45 ],
// center x, y, z, distance to center orthogonal-radial
[ 0.0, 0.4, 0.0, 1.0, 1.0, 0.8, 0.8 ],// top, max vert.
[ 0.1, 0.0, 0.1, 1.2, 0.6, 0.6, 0.7 ],// some centers x,y,z
[ 0.0, -2.0, 0.0, 0.3, 0.4, 0.3, 0.5 ],
[ 0.0, -3.0, 0.4, 0.6, 0.8, 0.7, 0.7 ],// bottom
];
const geo = Curved2Geometry( design );

Hier necesario todavía el uv Werte el Kappen berechnet voluntad. |
|
|
| |
|
|
|
 HofK | Wenn uno sólo una vez el richtigen Ansatz gefunden ha, Es el Rechnug incluso kein Problema.
Dabei enthält el Array pts para jede vertikale Schicht ([ 0 ] el obere) una Array con el en el jeweilige en el 3D Raum liegende Ebene bezogenen Koordinaten. Diese fueron a Bestimmung aller Positionen vorher ya berechnet. uMax o. vMax son esta el máximo aufgetretenen Werte en el oberen Schicht.
Für el Boden se ejecuta lo analog.
 |
|
|
| |
|
|
|
 HofK | Wieder zurück a CPU Simulation brachten algunos Versuche con el Addition en el ALU merkwürdige Ergebnisse. Das letzte Bit blieb teils leer y así waren el Resultate natürlich falso.
Nach vielen console.log( ) Ausgaben stellte Yo fest, dass siempre en Bit 0 algo torcido lief. El runde Null ha así öfters ihre "Ecken y Kanten".
Dann bekam Yo heraus, que un Ergebnis-String el 9 Bit ALU una Longitud de 18 hatte. Auch en Bit 0!
Also todos en diesem Zusammenhang benutzten Befehle y Características bajo el Lupe genommen. Dabei stieß I right( s, n ).
Um el Quellcode vergleichbar a halten y a Übernahme de XProfan después de JavaScript überschaubar a gestalten, Yo como más oben beschrieben, algunos Características de XProfan en JS nachgebildet.
So auch
Con el -n findet uno hay: [...] 
Im Test war lo auch ok.
Was Yo no bedacht y geprüft hatte, war el doch muy spezielle Zahl 0, obwohl al siempre hacer debería.
Puedo mich bien erinnern, el el Einstieg en el höherer Mathematik con el Beweis begann, dass lo sólo una Null son. Erscheint el "normalen" Menschen selbstverständlich y no Rede wert. Gab seinerzeit auch sólo großes Erstaunen qué el se. Hinterher war lo klar - como meist siempre en solchen Dingen.
In el entsprechenden XProfan Bucle
R9$ = space$(8-bit%) + r$ + right$(R9$, bit%)' ... como el Resultat-Bit
se anfangs bit% Null.
En XProfan right$ kommt una Leerstring como gewünscht.
En JS right Función bedeutet aber -0 auch 0 y s.substr( 0 ) liefert el ganzen String. Der incluso es zuerst con Leerzeichen gefüllt. Dadurch versteckt él se bien, sólo el Longitud 18 ha ihn verraten.
Man muss el 0 "behandeln".
Yo bin me sicher, el war no letzte Stolperstein (oder doch -felsen?) en Portierung.
 |
|
|
| |
|
|
|
 p.specht
 | Immerhin könntest du el Stolperstein nun en 3D modelieren  |
|
|
| XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 01.04.2021 ▲ |
|
|
|
|
 HofK | Der nächste Stolperstein war el zeitlich unbegrenzte Unterbrechung des Programmlaufs encima el Startknopf. Nach algunos Fehlversuchen y una wenig Umgruppierung en el Code podría pero yo por uno einfache Zeitangabe verwirklichen. Der Takt se unendlich ausgedehnt.
Un weitere Etappe es así geschafft. Das erste Testprogramm es voll funktionstüchtig. Es mehrfach startbar.
Se puede Pagar eingeben, zwischendurch pausieren y el Takt con el Schieberegler verändern. El Summe erscheint en el I/O-Protocol.
Dort ausprobieren: [...] 
El Assemblerdatei lokal speichern. Dort para encontrar. [...] 
Und hier:
|
|
|
| |
|
|
|
 HofK | Der Fisch entwickelt se.
Problema es, una passende Textur a remendar. Dazu muss uno una Foto entsprechend verzerren.
Un Anfrage en discourse [...] hatte no Resonanz, aber zufällig war en un otro Contribución [...] una Link, de los Problema löst. [...] 
Zwar no perfekt, como algo mühsam y no 100% exakt hinzubekommen, aber para mi Zwecke ausreichend.
Fischmaul y Flossen fehlen todavía.

Como zappelt el Fisch (kurzes Video):
Descargar |
|
|
| |
|
|
|
 HofK | El zweifach kurvige Geometrie es fertiggestellt.
Curved2Geometry
Man definiert con algunos 3D Punkten el Mittelkurve y para algunos Winkel el orthogonal radialen Abstände el Hülle de esta Punkten.
Mit el Angabe el maximalen Werte determinado uno el vertikale y radiale Feinheit el Darstellung.
Mit una Definitionsstring de drei Signo legt uno fest, si Kappen generiert voluntad debería y si esta "flat" oder "smooth" ser debería. Das dritte Signo ermöglicht el radiale verbinden sin Naht oder una symmetrische Geometrie. Für el symmetrische Geometrie muss el letzte Winkel 180° ser.
3 Signo 'string' = 'withTop withBottom conncted/symmetric'
withTop/Bottom: x, f, s = no, flat, smooth conncted/symmetric: x, c, s = no, connected, symmetric
Mit el Angabe de Abweichungen a definierten Punkten el Mittelkurve lässt optional una muy organische Bewegung el Geometrie erzeugen.
El Parámetro y Werte voluntad en uno Designmatrix zusammengefasst. Das erste Línea dieser Matrix es una Array el Parámetro, el más Zeilen enthalten en jeweils una Array el Werte.
Auf esta Weise puede ser el Werte en Spalten genau bajo el Parametern platzieren.
const design = [
// first0, .. angles .. , max angle
[ maxVert.,'cadena', maxRadial, 0, phi1, phi2, ... phimax ] ,
// center x,y,z distance to center orthogonal-radial
[ x, y, z, r0, r1, r2, ... r ],// top
...
[ ]// bottom
];
Ein Ejemplo:

Como en cualquier definierten Mittelpunkten y Winkeln y ebenso beliebigen maximalen Werten el Feinheit no exakte Übereinstimmung posible es, voluntad el jeweils nächstgelegenen Werte ermittelt y para el Berechnung benutzt.
El optionalen Werte el Abweichungen son en entsprechender Struktur a Mittelpunkten a notieren. Aus esta Werten voluntad en uno Kurve weitere Punkte producido. Deren Anzahl es en un gesonderten Parámetro anzugeben.
El Bewegung es con Ayuda el Método geometry.morph( geometry.cPts ) producido.
g.cPts = []; // array of array of morphed g.cPoints
wobei
g.cPoints = new THREE.CatmullRomCurve3( g.dsgnCenters, falso ).getSpacedPoints( g.vertical );
Dort ansehen: [...] => [...] 

Ver código fuente auch en Github [...] y discourse [...]  |
|
|
| |
|
|
|
 HofK | Un entscheidende Etappe el CPU-Simulation es erfolgreich absolviert.
Das rekursive Quicksort funktioniert. 
Lo benutzt zwar no todos Befehle, aber es doch ya bastante komplex. El problematischen Befehle MUL y DIV voluntad no benötigt.
El Auswahl uno Eingabedatei es posible, funktioniert aber bedingt por el Vorgaben el Navegador algo anders como bajo Windows/Desktop. Dort se el Dateiname de el Editar benutzt, en el Navegador muss uno por seleccionar una lokale Expediente incluso auswählen.
Guardar en un lokale Expediente es en el Navegador no posible. In otro Programmen Yo el problema derart gelöst, el el Werte encima una textarea en el Zwischenablage kopiert voluntad. Siehe z.B. [...] 
Also el código entsprechend übernommen, getestet - el Zwischenablage es leer!
In el Konsole/Warnungen findet uno

Ist wohl otra vez veces una Sicherheitsfeature. Nur dumm, dass all esta Dinge el normalen Nutzer ausbremsen, aber el Ganoven no su abhalten en siempre otra vez neu entdeckten Schlupflöcher ihr Unwesen a treiben.
Also voluntad Yo analog para Entrada una copy bajo el Feld conjunto. Der Nutzer muss entonces eben otra vez clic, si él el Ergebnis no sólo en el RAM haben möchte.
Ausprobieren: [...] 
Archivos bajo [...] 
Vor Run input.hcx selektieren!

Quicksort rekursiv.txt
|
|
|
| |
|
|
|
 HofK | Mittlerweile klappt nun kopieren en el Zwischenablage.
Mit el Farbänderung el Buttonschriftfarbe de "to Clipboard" se signalisiert, dass el Speicherung STO es es y Button betätigt voluntad kann. Damit es una Navegador zufrieden - Firefox!!!
En Chrome no Fehlermeldung, pero passiert nichts.
Irgendwie verliert uno como el Lust para Navegador algo a programa. Weil Chaos herrscht se uno para cada Navegador una Extrawurst braten.
Dazu Yo no Lust y voluntad mich fortan en Firefox beschränken y el vermerken. Aber auch como kann lo passieren, el después de einiger Tiempo nichts mehr funktioniert. Como beim Video, wo alte Beispiele no mehr laufen, porque seit einiger Tiempo auch hier una Nutzerbutton Pflicht es. War el en alten Beispielen (z.B. en meiner Sammlung de Discourse ) no como, funktioniert el heruntergeladene Ejemplo no mehr.
Das Chaos es incluso "sauber" dokumentiert: [...] 
Zitat: "The clipboard and other APIs involved here are evolving rapidly, así there are variations among browsers en how they work."
El "neue" Clipboard API mag Yo nada sólo testen,
Wer also probieren möchte - Por favor, Firefox benutzen. [...] 
Damit el Test rápidamente va el Schieber "clock speed" bastante después de rechts schieben y una kleine input - Expediente wählen, z.B. inputA.hcx de [...]  |
|
|
| |
|
|