PIXEL BENDER #5 Pitch Roll Yaw
![]()
voilà à quoi ressemblerait le monde si les pingouins avaient gagné la seconde guerre mondiale.
hier c’était de l’azimutal, aujourd’hui on va Pitch Roll Yawer !
youpi!
voilà.
pitch roll et yaw c’est le nom des rotations dans l’espace en anglais… c’est pas une danse.
voilà, voilà…
toujours d’après les algos de Peter Gawthrop.
voilà, voilà, voilà…
appuyer sur ’s’ pour changer d’image.
en haut on a l’image tordue, en dessous l’image orioginale en petit et à droite une sphère sur laquelle j’ai plaqué l’image tordue.
Ce qu’il faut noter c’est que la sphère ne BOUGE PAS.
j’ai fait une sphère un peu grossière justement pour voir que je ne mens pas.
En fait il y a juste le map qui s’en prend plein la tronche
n’est ce pas merveilleux?
ce coup ci on a besoin d’un rapport 2:1 pour l’image source sinon ça part en sucette.
et hop un ZIP:
pas de FLA (pas de CS4 sous la main) mais ne pleure pas car voilà le gros snippet!
package { import flash.events.Event; import flash.events.MouseEvent; import flash.display.Bitmap; import flash.display.Shader; import flash.display.Sprite; import flash.filters.ShaderFilter; /** * http://en.nicoptere.net/ * @author nicoptere */ public class BasicPRY extends Sprite { private var stopped:Boolean = true; private var photo:Bitmap; [Embed(source = 'equirectangular_pano.jpg')]private var img:Class; private var shader:Shader; [Embed(source = "PRYprojection.pbj", mimeType = "application/octet-stream")]private var PRY:Class; public function BasicPRY() { //creates a picture photo = new img() as Bitmap; addChild( photo ); //creates the shader shader = new Shader( new PRY() ); shader.data.imageSize.value = [ photo.width, photo.height ]; //update stage.addEventListener( Event.ENTER_FRAME, applyFilter ); stage.addEventListener( MouseEvent.CLICK, startStop ); } private function applyFilter( evt:Event ):void { if ( stopped ) return; var w:Number = stage.stageWidth; var h:Number = stage.stageHeight; var P:Number = ( h / 2 - mouseY ) / h * 360; var R:Number = 0; var Y:Number = ( w / 2 - mouseX ) / w * 360; shader.data.rotation.value = [ P, R, Y ]; photo.filters = [ new ShaderFilter( shader ) ]; } private function startStop( e:MouseEvent ):void { stopped = ( !stopped ) ? true : false; } } }
ça devrait donner ça: The Flash plugin is required to view this object.
click pour start/stop.
encore une fois et à l’attention des non-comprenants je n’assure pas le SAV sur cette source.
je trouvais ça YES! et je suis sûr que ça peut servir.
la question c’est “à quoi ?”
et sans rire: un des aspects les plus importants de la cartographie c’est qu’elle est toujours porteuse d’une idéologie, c’est pas pour rien qu’on s’est foutus au milieu quandmême.
bon, gros bisous,
Hey
Ca fait un moment que je suis ton blog m’interressant moi-aussi à la programmation graphique et comme tu le remarqueras, c’est la première fois que je poste dans le coin :). Juste un petit commentaire concernant le dernier snippet interactif (la déformation temps-réel à la souris) : C’est graphiquement très très intéressant ! Je verrais bien ça (en pas-forcément-interactif) dans une démo ou une intro, voir en remplaçant l’image source par un plasma ou des blobs en mouvement ..
‘just my 2 cents’ comme qu’on dit là-bas.
Oh et bravo pour le blog, les articles sont vraiment super intéressants !
Excellent ! Je ne vais pas tarder à mettre ces exemples sur mon blog !
Il y a aussi une multitude d’algorithmes intéressants liés à la photographie panoramique et à la cartographie du coté du docteur (en mathématique) Helmut Dersch aux adresses suivantes :
- http://www.all-in-one.ee/~dersch/
- http://webuser.hs-furtwangen.de/~dersch/
merci a vous deux
vous êtes sympas.
nicolas > les ressources du Pr Dersch m’intéressent grandement.
merci de partager
en plus son nom m’a bien fait rire ;au début je croyais que c’était un bot ^^
un commentaire pas vraiment intéressant (je parle du mien ;))
c’est juste énorme!!
je vois que tu ne chaumes pas.
question quand même au niveau des ressources il vaut mieux déformer la map ou faire tourner la sphère?
Impressionnant !
A quoi ça peut servir ? Ben moi je sais : je travaille pour une asso d’astronomie et j’utilise un planétarium numérique ou l’on projete un flux vidéopro sur un dome via un fisheye (http://lss-planetarium.ovh.org).
Pour obtenir une image correcte sur le dome, il faut qu’elle soit préalablement déformée par une distortion fisheye comme le fait le logiciel Stellarium. J’ai commencé à travailler sur un projet flash en complément et ton travail sur les projections sont très fructueuses pour moi. Encore bravo…
la pieuvre > faire tourner la sphère bien sûr.
matthieu > voilà qui fait vraiment chaud au coeur! je suis bien content que ça serve à quelque chose, ‘en vrai’ ^^ merci
Ça faisait un moment que je n’étais pas passé mais tes articles sont toujours aussi intéressants.