image ResEx Logo
ResExcellence www : Powered by Google
Cell Phone Themes Icons Mighty Mouse Cursors Software Reviews Widgets & Widgets

Articles
   3D
   Audio
   Custom Controls
   General RB
   Graphics
   Hacks
   Mac OS X
   Menus
   Novelty
   Printing
   REALbasic 2005
   REALbasic 2006
   Registration
   Resources
   Reviews
   Serial
   Speech
   Sockets
   XML
   Video
Resource Links
News
   Current News
   February 2006
   January 2006
   December 2005
   November 2005
   October 2005
   September 2005
   August 2005
   July 2005
   June 2005
   May 2005
   April 2005
   March 2005









REALbasic for Dummies
by Erick Tejkowski


Learning REALbasic through Applications
by Clayton E., Crooks II


REALbasic for Macintosh
by Michael Swaine


REALbasic Cross-Platform Application Development
by Mark S. Choate





Older files are in Stuffit 5 or greater format. Newer files are ".Zip". Download StuffIt Expander
Tell us about a bad link. Thank You!

Vector Graphics by Erick Tejkowsi
07-25-02

Printer Version




vector gfx This week we'll continue examining some of the new features in REALbasic 4.5. This time, it's vector graphics! REALbasic 4.5 has some brand-spanking-new classes to give you the ability to create vector graphics in your projects.


NOTE: This project requires REALbasic 4.5 or newer!

So far, you're probably most familiar with bitmap graphics, where you fill in the various squares of an imaginary grid with color. Examples of bitmap graphics include GIF, JPEG, and PICT(sometimes). Vector graphics, on the other hand, are drawings based on numerical formulas. You've seen vector files in action whenever you've viewed a pdf file in Acrobat or a drawing document in AppleWorks, or watched a Flash video on the web. Whereas bitmap graphics are a fixed size and orientation, vector graphics, with their formulaic-way of drawing, don't have the same constraints. Because of this, you can rotate and scale a vector image without loss of quality.

Build the Interface

Launch REALbasic and open Window1 from the Project window. To this window, add the following controls:

Control Type Control Name Other Properties
PushButton zoomButtonIn Caption="Zoom In"
PushButton zoomButtonOut Caption="Zoom Out"
PushButton rotateButtonRt Caption="Rotate Rt."
PushButton rotateButtonLeft Caption="Rotate Left"
Canvas Canvas1 Width=500;Height=375

Arrange the interface however you'd like, but it might look like this:

07-25-02_interface.jpg (15k)

Source Code

Before you begin adding code, you need to add a property to Window1. Double-click Window1 to open its Code Editor. Select the Edit-New Property menu and create a new property.

07-25-02_prop.jpg (12k)

The first bit of code goes in the Open event of Window1.

  
  Dim r as RectShape
  Dim p as Picture
  
  //create a Group2D object
  d=New Group2D
  //create a picture object for displaying the images
  p=New Picture(500,375,0
  
  //create and define a RectShape
  r=New RectShape
  r.width=100
  r.height=25
  r.border=100
  r.bordercolor=RGB(0,0,0//black
  r.fillcolor=RGB(255,0,0// red
  r.borderwidth=2 
  
  //add the rectShape to the Group2D object
  d.append(r)
  
  //place the picture on the Canvas
  Canvas1.Backdrop=p
  Canvas1.Backdrop.Objects=d

Next, add this line of code to the Paint event of Canvas1:

  g.drawobject d,250,175

Next, you'll need to create a new method. Select Edit-New Method and create a new method named Redraw.

To this method, add the following code:

  
  //a simple routine to redraw
  //with less flicker than the paint event
  dim g as graphics
  
  g=canvas1.graphics 
  //erase the canvas
  g.ClearRect 0,0,canvas1.width,canvas1.height
  //draw objects on the canvas
  g.drawobject d,250,175
  

The final step is to add some code for the rotate and zoom PushButtons.

rotateButtonLeft.Action()
  
  //rotate left
  canvas1.backdrop.Objects.rotation=canvas1.backdrop.Objects.rotation-0.3
  redraw 
  
End Sub()

rotateButtonRt.Action()
  
  //rotate right
  canvas1.backdrop.Objects.rotation=canvas1.backdrop.Objects.rotation+0.3
  redraw 
  
End Sub()

zoomButtonIn.Action()
  
  //zoom in
  canvas1.backdrop.Objects.Scale=canvas1.backdrop.Objects.Scale*1.1
  redraw 
  
End Sub()

zoomButtonOut.Action()
  
  //zoom out
  canvas1.backdrop.Objects.Scale=canvas1.backdrop.Objects.Scale*0.9
  redraw 
  
End Sub()

Conclusion

To test the project, select the Debug-Run menu. The demo draws a simple rectangle on the screen and lets you zoom in/out and rotate the object in both directions. As usual you can download the completed project instead of creating it by hand. Use your imagination when playing with the new vector features of REALbasic 4.5. There are many useful scenarios for using this feature, so it's a welcome addition to REALbasic. Have fun and see you next week!




Cell Phone Themes Icons Mighty Mouse Cursors Software Reviews Widgets & Widgets

Maintained by the Staff of ResExcellence. This entire site ©1997-2006 ResExcellence
Privacy Statement? Sure we gotta Privacy Statement. [an error occurred while processing this directive]