| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #16 (permalink) | |||||
| habs vergessen Registriert seit: Feb 2006
Beiträge: 990
| Zitat:
darin der star mit deinem apple-ibook... Zitat:
nicht getestet... Zitat:
![]() Zitat:
Zitat:
pwd | |||||
| | |
| | #17 (permalink) |
| Euer Nuser Registriert seit: Apr 2004 Ort: Sand-City
Beiträge: 3.483
|
Also, wenn man's um 90° im Uhrzeigersinn dreht ist es eher Sitting Buddha - Mandelbrot ... wo? ![]() Aber fein fein. ^_^ Edit: Ach, Benoît Mandelbrot ... --pp
__________________ Die Krinimalpolizei gibt bekannt: Geändert von ~pyropete~ (03-12-2006 um 16:41 Uhr) |
| | |
| | #18 (permalink) | |
| Knopfmaler Registriert seit: Nov 2004 Ort: Essen
Beiträge: 227
| Zitat:
![]() Viele Gruesse =:] Aerks | |
| | |
| | #20 (permalink) |
| habs vergessen Registriert seit: Feb 2006
Beiträge: 990
|
...habe mal mit dem Input von Aerks herumgespielt. Die Julia-Menge wird nun über ein byteMap + paletteMap erstellt. Alle 3 Sekunden werden die Farben neu gesetzt. ansehen Die Farbfunktionen etc. sind von Aerks und seinem echt coolen Fractal- Piloten: ansehen Beim berechnen und mappen meines byteArrays/paletteMap mache ich noch Fehler, den meine Juliamenge sieht nicht so aus wie sie soll - nämlich eigentlich so: ansehen Und hier was zum "mit" rumspielen: Code:
/////////////////////////////////////////////////////
// juliamenge fractal viewer
// author : frank reitberger
// site : http://www.dasprinzip.com
// copyright 2006
/////////////////////////////////////////////////////
// --------------------------------------------------------------------------------------------------
stop();
// --------------------------------------------------------------------------------------------------
///////////////////////////////////
// import stage classes
///////////////////////////////////
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.StageScaleMode;
import flash.display.Sprite;
import flash.geom.Point;
import flash.geom.Rectangle;
// --------------------------------------------------------------------------------------------------
///////////////////////////////////
// setup juliamenge global vars
///////////////////////////////////
var efxDraw:Bitmap;
var efxStage:BitmapData;
var blurDraw:Bitmap;
var blurtage:BitmapData;
var fractalCanvas:BitmapData;
var fractalByteArray:ByteArray;
var paletteR:Array;
var paletteG:Array;
var paletteB:Array;
var newSec:Number;
var oldSec:Number;
var timeCnt:Number = 0;
// --------------------------------------------------------------------------------------------------
///////////////////////////////////
// get mouse position steady
///////////////////////////////////
function catchMouse(evt:MouseEvent) {
blurStage.copyPixels(efxStage, new Rectangle(stage.mouseX-50, stage.mouseY-50, 50 , 50), new Point(stage.mouseX-50, stage.mouseY-50));
}
// --------------------------------------------------------------------------------------------------
///////////////////////////////////
// draw blur filters steady
///////////////////////////////////
function onEnterFrame(evt:Event) {
pnt.y--;
if (pnt.y < 0) {
pnt.y = 400;
}
blurStage.copyPixels(efxStage, new Rectangle(pnt.x, pnt.y, 400 , 20), new Point(pnt.x, pnt.y));
var updTime = new Date();
newSec = updTime.getSeconds();
if (oldSec != newSec) {
timeCnt++;
if (timeCnt > 3) {
paint();
timeCnt = 0;
}
}
oldSec = newSec;
blurStage.applyFilter(blurStage,blurStage.rect,new Point(0, 0),new BlurFilter(8, 8, 1));
blurStage.colorTransform(blurStage.rect, new ColorTransform(1, 1, 1, 1, -1, -1, -1,-4));
noiseStage.perlinNoise(20, 20, 1, Math.random()*1000, false, true, true, true);
var dpMap:DisplacementMapFilter = new DisplacementMapFilter(noiseStage, new Point(0, 0), 1, 2, 20, 20);
dpMap.mode = "clamp";
blurStage.applyFilter(blurStage, new Rectangle(0, 0, stage.stageWidth, stage.stageHeight), new Point(0, 0), dpMap);
}
// --------------------------------------------------------------------------------------------------
///////////////////////////////////
// color management
// written by Thorsten Werner
// www.rgblaster.de
///////////////////////////////////
function initPalette():void {
paletteR=new Array();
paletteG=new Array();
paletteB=new Array();
for (var i:uint=0;i<0xFF;i++) {
paletteR.push(0);
paletteG.push(0);
paletteB.push(0);
}
}
function updatePalette():void {
var t:Number=getTimer()*0.0003;
var s1:Number=Math.sin(t)*2.972;
var s2:Number=Math.cos(t)*1.581;
var s3:Number=Math.sin(t)*2.193;
for (var i:uint=1;i<0xFF;i++) {
paletteR[i]=createCol(s1,s2,s3);
paletteG[i]=createCol(s1,s2,s3);
paletteB[i]=createCol(s1,s2,s3);
s1+=0.36;
s2+=0.34;
s3+=0.38;
}
}
function createCol(s1:Number,s2:Number,s3:Number):Number {
var r:Number=0x7F+Math.sin(s1)*0x7F;
var g:Number=0x7F+Math.sin(s2)*0x7F;
var b:Number=0x7F+Math.sin(s3)*0x7F;
return 0xFF000000 | (r & 0xFF) <<16 | (g & 0xFF) <<8 | (b & 0xFF);
}
// --------------------------------------------------------------------------------------------------
///////////////////////////////////
// configure canvas
///////////////////////////////////
function initStage() {
stage.scaleMode = StageScaleMode.NO_SCALE;
efxStage = new BitmapData( stage.stageWidth , stage.stageHeight , false , 0x000000 );
efxDraw = new Bitmap( efxStage );
addChild( efxDraw );
fractalCanvas = new BitmapData( stage.stageWidth , stage.stageHeight , false , 0x000000 );
fractalByteArray = new ByteArray();
fractalByteArray.endian = Endian.BIG_ENDIAN;
fractalByteArray.length = fractalCanvas.width*fractalCanvas.height;
blurStage = new BitmapData( stage.stageWidth , stage.stageHeight , true, 0x000000 );
blurDraw = new Bitmap( blurStage );
addChild( blurDraw );
noiseStage = new BitmapData(stage.stageWidth,stage.stageHeight, false, 0xffffff);
addChild( pnt );
initPalette();
stage.addEventListener(Event.ENTER_FRAME, onEnterFrame );
paint();
}
// --------------------------------------------------------------------------------------------------
///////////////////////////////////
// paint juliamenge fractal
///////////////////////////////////
function paint() {
updatePalette();
fractalByteArray.position=0;
fractalByteArray.length=0;
var cnt:Number;
var tx:Number;
var ty:Number;
var dim:Number;
var dist:Number;
var xn:Number;
var yn:Number;
var a:Number = -1;
var b:Number = 0.28;
var xmin:Number = -1;
var ymin:Number = -1;
var k = 1.2;
dim = k / 200;
tx = xmin;
for (var s:Number = 0; s <= 400; s++) {
ty = ymin;
for (var r:Number = 0; r<=400; r++) {
xn = tx;
yn = ty;
cnt = 0;
while ((cnt < 255) && (Math.sqrt(xn*xn+yn*yn)<2)) {
cnt++;
dist = (xn*xn)-(yn*yn) + a;
yn = (2*xn*yn) + b;
xn = dist;
}
fractalByteArray.writeUnsignedInt(cnt);
ty = ty + dim;
}
tx = tx + dim;
}
fractalByteArray.position=0;
fractalCanvas.setPixels(fractalCanvas.rect,fractalByteArray);
fractalCanvas.paletteMap(fractalCanvas,fractalCanvas.rect,new Point(0, 0),paletteR,paletteG,paletteB);
var myMatrix:Matrix = new Matrix();
myMatrix.rotate(Math.PI/2);
var translateMatrix:Matrix = new Matrix();
translateMatrix.translate(400, 0);
myMatrix.concat(translateMatrix);
efxStage.draw(fractalCanvas,myMatrix,null,"normal",efxStage.rect,true);
}
// --------------------------------------------------------------------------------------------------
///////////////////////////////////
// init
///////////////////////////////////
initStage(); pwd |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |