Επιδράσεις στην Bitmaps με perlinNoise ()

Δευτέρα, 2 Ιουνίου, 2008

Η τάξη BitmapData μπορεί να εφαρμοστεί εύκολα σε μια ποικιλία από χρήσιμα αποτελέσματα σκοπούς. Έχουμε δει τον τρόπο δημιουργίας ενός "ομίχλης τηλεόραση με μερικές γραμμές κώδικα (Flash CS3: δημιουργία ομίχλης αποτέλεσμα τηλεόραση σε 1 δευτερόλεπτο). Τώρα σχεδιάζουμε μια πιο αποτελεσματική "εντυπωσιακό", η οποία, όπως θα δούμε αργότερα, σας επιτρέπει να δημιουργήσετε ενδιαφέροντα αποτελέσματα των charts, όπως φαίνεται στο παρακάτω: αλλάξει τις παραμέτρους για την παρατήρηση των διαφόρων επιπτώσεων, κάνοντας κλικ στο ποντίκι που προκαλούνται μπορεί να μετακινηθεί.

Φόρτωση Flash Player ...

Με την ευκαιρία αυτή, επίσης μόλις προστίθεται ένα νέο στοιχείο (Check) στο Undolibrary! Στη συνέχεια, ενημερώστε τα στοιχεία σας SVN repository. Η πηγή είναι διαθέσιμη εδώ: MapEffect.zip

Το αποτέλεσμα φαίνεται στην παραπάνω ταινία είναι κατασκευασμένη εξ ολοκλήρου με τη μέθοδο perlinNoise() που διατίθενται από BitmapData Όπως αναφέρεται στο εγχειρίδιο:

Ο αλγόριθμος δημιουργεί θόρυβο Perlin Interpol και συνδυάζει επιμέρους λειτουργίες του τυχαίου θορύβου (που ορίζεται έγδοων) σε μια ενιαία λειτουργία που δημιουργεί ένα τυχαίο θόρυβο που φαίνεται πιο φυσικό.

Και πάλι:

Τα καθήκοντα του Perlin θορύβου μπορούν να χρησιμοποιηθούν για την προσομοίωση φυσικών φαινομένων και των τοπίων, όπως και η υφή του ξύλου, του νέφους και οροσειρές.

Μπορείτε να χρησιμοποιήσετε το βίντεο demo για να δείτε πώς αλλάζει η εικόνα που δημιουργείται από τη ρίζα. Στην ταινία μου δεν επιτρέπουν την αλλαγή της παραμέτρου randomSeed έναν αριθμό που χρησιμοποιείται για την παραγωγή του τρόπου διεξαγωγής τυχαία (να επιτρέψουν μια από τις συνεχείς μεταβείτε - κάντε κλικ με το ποντίκι σας και σύρετε).

Πηγή

Το έγγραφο της κατηγορίας MapEffect περιέχει όλες τις κωδικό της επίδειξης, αλλά η καρδιά είναι η μέθοδος που περιλαμβάνεται στο doPerlinNoise()

Actionscript:
  1. / *
  2. ** @ Όνομα: doPerlinNoise ()
  3. * /
  4. : void { προστατεύεται λειτουργία doPerlinNoise (): άκυρη (
  5. Point ( __translateX, __translateY ) ; var p: Point = νέο σημείο (__translateX, __translateY)?
  6. __mapWidth, __mapHeight, __octave, __seed, __transuni, __fractal, BitmapDataChannel. GREEN , true , [ p,p,p ] ) ; __bmpd. perlinNoise (__mapWidth, __mapHeight, __octave, __seed, __transuni, __fractal, BitmapDataChannel. ΠΡΑΣΙΝΗ, αλήθεια, [p, p, p])?
  7. )

__bmpd είναι ένα δείκτη σε ένα αντικείμενο BitmapData το οποίο στη συνέχεια εμφανίζεται μέσα από το αντικείμενο γραφήματος Bitmap __bmp Όλες οι παράμετροι της πρόσκλησης για την perlinNoise() είναι παραμετρικό, εκτός - όπως προαναφέρθηκε - __seed (αυτό μπορεί να αξίζει μια χαρά).

Σχετικές Post

Αφήστε ένα σχόλιο

TAG XHTML επιτρέπεται: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Χρησιμοποίησε <pre> να επισυνάψουν κωδικός