De oplossing

Archief Forum van Eric Smit & Uitgever (http://www.debroncode.nl)

Re: De oplossing

Beitragvon Webmaster » Mi 18 Aug 2010, 10:18

From: Ralphs

Grappig he

Jah, dat vond ik nou ook al. 'k zat te denken om van m'n spaarcenten een scriptje te laten schrijven. Doe je mee?
Benutzeravatar
Webmaster
Beheerder
 
Beiträge: 1848
Registriert: Sa 14 Aug 2010, 13:21

Re: De oplossing

Beitragvon Webmaster » Mi 18 Aug 2010, 10:19

From: Cugel

Jah, dat vond ik nou ook al. 'k zat te denken om van m'n spaarcenten een scriptje te laten schrijven. Doe je mee?

http://www.geocities.com/~harveyh/Downl ... attern.doc

Was bij ons ook al bekend, het gaat om het principe van de hash formule...wat je er ook in stopt er komt altijd hetzelfde uit, het gaat om de volgorde van de parameters.

Ter vergelijking voedsel..het maakt niet uit wat je eet..het resultaat is altijd hetzelfde.

Geef je geld maar lekker uit in een bar

Mundus vult decipi
Benutzeravatar
Webmaster
Beheerder
 
Beiträge: 1848
Registriert: Sa 14 Aug 2010, 13:21

Re: De oplossing

Beitragvon Webmaster » Mi 18 Aug 2010, 10:20

From: Ralphs

http://www.geocities.com/~harveyh/Downloads/BigNumPattern.doc

Was bij ons ook al bekend, het gaat om het principe van de hash formule...wat je er ook in stopt er komt altijd hetzelfde uit, het gaat om de volgorde van de parameters.

Ter vergelijking voedsel..het maakt niet uit wat je eet..het resultaat is altijd hetzelfde.

Geef je geld maar lekker uit in een bar

Mundus vult decipi

ok.
Benutzeravatar
Webmaster
Beheerder
 
Beiträge: 1848
Registriert: Sa 14 Aug 2010, 13:21

Re: De oplossing

Beitragvon Webmaster » Mi 18 Aug 2010, 10:21

From: Troebelwater

Hoe is het bij Drazic, zien de zaken er positief uit? Graag wat algemene info, ben namelijk nieuwsgierig :)
Benutzeravatar
Webmaster
Beheerder
 
Beiträge: 1848
Registriert: Sa 14 Aug 2010, 13:21

Re: De oplossing

Beitragvon Webmaster » Mi 18 Aug 2010, 10:22

From: Llarz

588235294117647 * 01 = 0588235294117647 * 17 = 009999999999999999 div 9 = 01111111111111111 div 11 = 0101010101010101 div 01 = 101010101010101
588235294117647 * 10 = 5882352941176470 * 17 = 099999999999999990 ¸ 9 = 11111111111111110 ¸ 11 = 1010101010101010 ¸ 10 = 101010101010101
588235294117647 * 15 = 8823529411764705 * 17 = 149999999999999985 ¸ 9 = 16666666666666665 ¸ 11 = 1515151515151515 ¸ 15 = 101010101010101
588235294117647 * 14 = 8235294117647058 * 17 = 139999999999999986 ¸ 9 = 15555555555555554 ¸ 11 = 1414141414141414 ¸ 14 = 101010101010101
588235294117647 * 04 = 2352941176470588 * 17 = 039999999999999996 ¸ 9 = 04444444444444444 ¸ 11 = 0404040404040404 ¸ 04 = 101010101010101
588235294117647 * 06 = 3529411764705882 * 17 = 059999999999999994 ¸ 9 = 06666666666666666 ¸ 11 = 0606060606060606 ¸ 06 = 101010101010101
588235294117647 * 09 = 5294117647058823 * 17 = 089999999999999991 ¸ 9 = 09999999999999999 ¸ 11 = 0909090909060909 ¸ 09 = 101010101010101
588235294117647 * 05 = 2941176470588235 * 17 = 049999999999999995 ¸ 9 = 05555555555555555 ¸ 11 = 0505050505050505 ¸ 05 = 101010101010101
588235294117647 * 16 = 9411764705882352 * 17 = 159999999999999984 ¸ 9 = 17777777777777776 ¸ 11 = 1616161616161616 ¸ 16 = 101010101010101
588235294117647 * 07 = 4117647058823529 * 17 = 069999999999999993 ¸ 9 = 07777777777777777 ¸ 11 = 0707070707070707 ¸ 07 = 101010101010101
588235294117647 * 02 = 1176470588235294 * 17 = 019999999999999998 ¸ 9 = 02222222222222222 ¸ 11 = 0202020202020202 ¸ 02 = 101010101010101
588235294117647 * 03 = 1764705882352941 * 17 = 029999999999999997 ¸ 9 = 03333333333333333 ¸ 11 = 0303030303030303 ¸ 03 = 101010101010101
588235294117647 * 13 = 7647058823529411 * 17 = 129999999999999987 ¸ 9 = 14444444444444443 ¸ 11 = 1313131313131313 ¸ 13 = 101010101010101
588235294117647 * 11 = 6470588235294117 * 17 = 109999999999999989 ¸ 9 = 12222222222222221 ¸ 11 = 1111111111111111 ¸ 11 = 101010101010101
588235294117647 * 08 = 4705882352941176 * 17 = 079999999999999992 ¸ 9 = 08888888888888888 ¸ 11 = 0808080808080808 ¸ 08 = 101010101010101
588235294117647 * 12 = 7058823529411764 * 17 = 119999999999999988 div 9 = 13333333333333332 div 11 = 1212121212121212 div 12 = 101010101010101

Jongens, de BigNumPattern is doordacht.
Ik zal uitleggen waarom:

1. De eerste getal waarmee hij vermenigvuldigd, door dat getal deelt hij later mee.
Je kan die stap dus schrappen.
2. Hij werkt met afgeronde getallen, vandaar de vele 9-ens.

Ik zal de vergelijking is algebraisch oplossen, dmv breuken:

De schrijver heeft 1/17 gebruikt als grondgetal (zie de 'notes'). Dit is te schrijven als een breuk.

Zoals ik net zij kan de stap van de eerste vermenigvuldiging en de laatse deling geschrapt worden,

De syntaxen die overblijven zijn dan 1/17 x17 /9 /11 (waarbij / het gedeeldoor teken voorstelt)

Dit geeft 1/17 x 17 = 17/17
dat is dus 1 !!
dan /9: 1/9
en dat /11 dus:
(1/9)/11

en dit wordt dus met een stuk of 15 getallen gedaan die eerst vermenigvuldigd worden met bv 12 en later weer gedeeld worden door 12.
Dit geeft: 12 keer X = 12X,
12X gedeeldoor 12 is nog steeds X.

Lars
Benutzeravatar
Webmaster
Beheerder
 
Beiträge: 1848
Registriert: Sa 14 Aug 2010, 13:21

Re: De oplossing

Beitragvon Webmaster » Mi 18 Aug 2010, 10:23

From: Broncode

Jongens, de BigNumPattern is doordacht.
Ik zal uitleggen waarom:

1. De eerste getal waarmee hij vermenigvuldigd, door dat getal deelt hij later mee.
Je kan die stap dus schrappen.
2. Hij werkt met afgeronde getallen, vandaar de vele 9-ens.

Ik zal de vergelijking is algebraisch oplossen, dmv breuken:

De schrijver heeft 1/17 gebruikt als grondgetal (zie de 'notes'). Dit is te schrijven als een breuk.

Zoals ik net zij kan de stap van de eerste vermenigvuldiging en de laatse deling geschrapt worden,

De syntaxen die overblijven zijn dan 1/17 x17 /9 /11 (waarbij / het gedeeldoor teken voorstelt)

Dit geeft 1/17 x 17 = 17/17
dat is dus 1 !!
dan /9: 1/9
en dat /11 dus:
(1/9)/11

en dit wordt dus met een stuk of 15 getallen gedaan die eerst vermenigvuldigd worden met bv 12 en later weer gedeeld worden door 12.
Dit geeft: 12 keer X = 12X,
12X gedeeldoor 12 is nog steeds X.

Lars


Code: Alles auswählen
class Mesh {
var pointList:Array;
var pt2DList:Array;
var centerx, centery:Number;
var M1:Matrix;
var f:Number;
var brightness:Number;
var r;
var g;
var b;
var clr;
// constructor
function Mesh(mx, my, _f:Number) {
centerx = mx;
centery = my;
f = _f;
pointList = new Array();
pt2DList = new Array();
M1 = new Matrix();
brightness =0;
}
//
// test function
function toString() {
for (var i = 0; i.length; ++i) {
pointList[i].toString();
pt2DList[i].toString();
}
}
//add point
function addPoint(px, py, pz:Number) {
pointList.push(new v3d(px, py, pz));
}
// TRANSLATE
function translate(px, py, pz:Number) {
for (var i = 0; i.length; ++i) {
pointList[i].incrXYZ(px, py, pz);
}
}
// SCALE
function scale(scalar:Number) {
for (var i = 0; i.length; ++i) {
pointList[i].scaleVec(scalar);
}
}
function rotateX(xa:Number) {
M1.rotationX(Math.sin(xa), Math.cos(xa));
for (var i = 0; i.length; ++i) {
pointList[i] = M1.vectorMultiplication(pointList[i]);
}
}
// rotate y
function rotateY(ya:Number) {
M1.rotationY(Math.sin(ya), Math.cos(ya));
for (var i = 0; i.length; ++i) {
pointList[i] = M1.vectorMultiplication(pointList[i]);
}
}
// rotate z
function rotateZ(za:Number) {
M1.rotationZ(Math.sin(za), Math.cos(za));
for (var i = 0; i.length; ++i) {
pointList[i] = M1.vectorMultiplication(pointList[i]);
}
}
// rotate around point 0 of the object
function rotateAxis(_sin, _cos) {
var rv = pointList[0];
var uv = rv.getUnitVec();
M1.loadRotationAxis(uv, _sin, _cos);
for (var i = 0; i.length; i++) {
pointList[i] = M1.vectorMultiplication(pointList[i]);
}
}
// rotate around local x axis of the object
function rotateLocalX(sin, cos) {
M1.loadIdentityMatrix();
M1.rotationX(sin, cos);
var temp = pointList[0];
for (var i = 1; i.length; i++) {
// minus p0
pointList[i].x -= temp.x ;
pointList[i].y -= temp.y;
pointList[i].z -= temp.z;
// multiply by rotation x matrix
pointList[i] = M1.vectorMultiplication(pointList[i]);
// add back p0
pointList[i].x += temp.x;
pointList[i].y += temp.y;
pointList[i].z += temp.z;
}
}
// rotate around local y axis of the object
function rotateLocalY(sin, cos) {
M1.loadIdentityMatrix();
M1.rotationY(sin, cos);
var temp = pointList[0];
for (var i = 1; i.length; i++) {
// minus p0
pointList[i].x -= temp.x ;
pointList[i].y -= temp.y;
pointList[i].z -= temp.z;
// multiply by rotation x matrix
pointList[i] = M1.vectorMultiplication(pointList[i]);
// add back p0
pointList[i].x += temp.x;
pointList[i].y += temp.y;
pointList[i].z += temp.z;
// amke it move in that direction
//
}

}
// rotate around local z axis of the object
function rotateLocalZ(sin, cos) {
M1.loadIdentityMatrix();
M1.rotationZ(sin, cos);
var temp = pointList[0].minVecNew(pointList[1]);
temp.scaleVec(.5);
temp.addVec(pointList[1]);
for (var i = 0; i.length; i++) {
// minus p0
pointList[i].x -= temp.x ;
pointList[i].y -= temp.y;
pointList[i].z -= temp.z;
// multiply by rotation x matrix
pointList[i] = M1.vectorMultiplication(pointList[i]);
// add back p0
pointList[i].x += temp.x;
pointList[i].y += temp.y;
pointList[i].z += temp.z;
}
}
// stop rotating
function stop() {
M1.loadIdentityMatrix();
for (var i = 0; i.length; ++i) {
pointList[i] = M1.vectorMultiplication(pointList[i]);
}
}
// convert to 2D
function convert2D() {
for (var i = 0; i.length; i++) {
var ratio = f/(f+pointList[i].z);
var tx = pointList[i].x*ratio+centerx;
var ty = pointList[i].y*ratio+centery;
pt2DList[i] = new Point2D(tx, ty);
}
}
function drawFace(name, fArray, _clr, dep) {
_root[name].clear();

var flist = fArray;
//call backface Cull method - test for visibility and z greater than -f
if(backface(pointList[flist[0]],pointList[flist[1]],pointList[flist[2]]) ){
//
hexToRGB(_clr);
r = Math.round(r * brightness);
g = Math.round(g * brightness);
b = Math.round(b * brightness);
rgbToHex(r,g,b);
//
_root.createEmptyMovieClip(name, dep);
_root[name].lineStyle();
_root[name].beginFill(clr);
_root[name].moveTo(pt2DList[flist[0]].x, pt2DList[flist[0]].y);
for (var i = 0; i.length; i++) {
_root[name].lineTo(pt2DList[flist[i]].x, pt2DList[flist[i]].y);
}
_root[name].lineTo(pt2DList[flist[0]].x, pt2DList[flist[0]].y);
_root[name].endFill();
}
}
function drawFlatFace(name, fArray, clr, dep) {
_root[name].clear();
var flist = fArray;
clr = clr * brightness;
//
_root.createEmptyMovieClip(name, dep);
_root[name].lineStyle(1, 0x000000);
_root[name].beginFill(clr);
_root[name].moveTo(pt2DList[flist[0]].x, pt2DList[flist[0]].y);
for (var i = 0; i.length; i++) {
_root[name].lineTo(pt2DList[flist[i]].x, pt2DList[flist[i]].y);
}
_root[name].lineTo(pt2DList[flist[0]].x, pt2DList[flist[0]].y);
_root[name].endFill();
_root.name.swapDepths(Math.floor(10000 - flist[0].z ));
}

// backface culling
function backface(p1,p2,p3){
// old way
// var vis:Boolean = ((p2.x-p1.x)*(p3.y-p1.y)<(p3.x-p1.x)*(p2.y-p1.y));
//trace((p2.x-p1.x)*(p3.y-p1.y)/((p3.x-p1.x)*(p2.y-p1.y) ));
//return vis;
//
// ---------- calculate lights
var omni = new Light(0,0,-200);
var lv:v3d = new v3d(0,0,0);
// p1 of face minus light coords..
lv.x = p1.x - omni.x;
lv.y = p1.y - omni.y;
lv.z = p1.z - omni.z;

// get length of lightVector lv
lv.normalize();
// - normals
var v1:v3d = new v3d(0,0,-200);
// get vecs p1-p2, and p2-p3
var v2 = p1.minVecNew(p2);
var v3 = p2.minVecNew(p3);
// normalise
v2.normalize();
v3.normalize();
// v4 is our normal...
var v4 = v2.cross(v3);
// p1 minus lightSource
var camVector = p1.minVecNew(v1);
var result = v4.dot(camVector);
// lights again
var lichtresult = v4.dot(lv)
//
if(lichtresult 0){
brightness = 0;
}else{
brightness = -lichtresult;
}
if(result 0){
return false;
}else {
return true;
}


}
// ------ HEX to RGB
// adapted from pixelwit
function hexToRGB(hex){
var red = hex16;
var grnBlu = hex - (red<);
var grn = grnBlu8;
var blu = grnBlu - (grn<);
r = red;
g = grn ;
b = blu;
}
// --------- RGB to HEX
// figleaf software
function rgbToHex(pr,pg,pb){
r = pr<;
r = r.toString(16).substr(0,2);
g = pg<;
g= g.toString(16).substr(0,1);
b = pb;
b = b.toString(16).substr(0,1);
clr = "0x"+r+g+ g+ b+ b;
}
//

}
Benutzeravatar
Webmaster
Beheerder
 
Beiträge: 1848
Registriert: Sa 14 Aug 2010, 13:21

Vorherige

Zurück zu Forum Archief (wwww.debroncode.nl)

cron