Python in ArcGIS is intimidating, so I’m starting simple. This is a quick walk through of how to load a script for use and what a basic Python script looks like.
After a long vacation, a wedding, a bad flu, and a whole mess of planes, trains, and automobiles, I’m back to talk about textures. I love playing with transparency in scenes, but scripting transclucency is a bit unusual in Processing. The normal Processing canvas doesn’t support an alpha channel, so it requires something called PGraphics().
“Range object” is an unnecessarily intimidating term for a collection of cells within your workbook. Say you need to run some complicated math or formatting over the same cells over and over throughout a long script. You could call on the column number and row every damn time, but who wants to do all that typing?
I recently picked up a book called “Ghost in the Wires: My Adventures as the World’s Most Wanted Hacker” by Kevin Mitnick. To be totally honest, I’d never heard of Mitnick before. He was a little before my time—when he was arrested in 1995, I was still struggling to understand why the hell I had to learn fractions and everything I knew about computers was based on WarGames.
Animated textures in Blender is a thing! Immediately after finding that out, I set out to script a grid crawler texture in Processing. Because no one in their right mind would want to draw that by hand.
A Bit Of Everything has a post with the logic for a static grid, but somehow getting an animated version ate 3 hours of my life. All in all, it took about 12 tries. What I love about Processing is that even bad guesses can have pleasing results.
Scenes with custom textures always seem to turn out better for me, but they’re hellish to make. I’ve spent hours in GIMP hand-drawing patterns, carefully testing out layers to get effects. It’s a hassle.
However, I’m learning to automate more of that sort of thing with Processing. What’s really nice about that is you can get a texture that changes subtly every time you run the script if you use the Random function to assign coordinates, weights, and transparency values.