APPLICATIONSCREATION GRAPHIQUE ★ EASYDRAW II|AMSTRAD COMPUTER USER) ★

Easydraw II|Amstrad Computer User)Applications Creation Graphique
 ★ Ce texte vous est présenté dans sa version originale ★ 
 ★ This text is presented to you in its original version ★ 
 ★ Este texto se le presenta en su versión original ★ 
 ★ Dieser Text wird in seiner ursprünglichen Fassung Ihnen präsentiert ★ 

The full listing to date and some extra goodies from the graphics man, Glynne Davies.

Two more modules to add to the program, the first deals with rubbing out unwanted items and the second module is for creating shapes. You need to load "EASY3" created last month. If you have not followed the series so far or missed last month, here is the full listing to date:

see EASY3.BAS

RUBBING OUT

Everyone makes mistakes so I have included a facility to erase a block. I have used small erasers in other packages and found them difficult to control when accuracy is required, so I have made this routine only erase after you have selected the area with a box.

Considerations

  1. The area for deletion must be clear.
  2. The key F can be used to Finally Remove the block chosen
  3. The jump size must be selectable during this option
  4. Any other function chosen will switch off the rubber.

New Variables

rub rub= 1 means rubber is on.
origx Origin of x co-ordinate,
origy Origin of y co-ordinate,
xs x start for graphics window,
ys y start for graphics window,
xe x end for graphics window,
ye y end for graphics window,

The Listing (Ensure "EASY3" is in memory before typing in the listing.)

28 REM variables rub (rubout variable) origx,origy (original x and y)
280 IF INKEY(50)=0 THEN GOSUB 11000:rub=1:mde$="RUBBER":GOSUB 12000
290 IF rub=1 THEN GOSUB 16000
11010 start=0:beam=0:ele=0:fl=0:rub=0:xy=0:tl=0:tb=0:t=0:mde$="MOVE"
16010 LOCATE 1,1:PRINT CHR$(23)+CHR$(1);
16015 IF start=0 THEN start=1:origx=x:origy=y
16020 MOVE origx,origy
16030 DRAW x,origy,1:DRAW x,y,1:DRAW origx,y,1:DRAW origx,origy,1
16040 DRAW x,origy,1:DRAW x,y,1:DRAW origx,y,1:DRAW origx,origy,1
16050 IF INKEY(53)=0 THEN GOSUB 16100
16060 RETURN
16100 IF x < origx THEN xs=x:xe=origx:ELSE xs=origx:xe=x:REM find the XStart and Xend for the window
16110 IF y < origy THEN ys=y:ye=origy:ELSE ys=origy:ye=y:REM find the YStart and YEnd for the window
16115 GOSUB 5070:REM remove cursor
16120 ORIGIN xs+4,ys,xs+4,xe-4,ys,ye:CLG:REM Redefine the graphics screen and clear the new window
16130 ORIGIN 0,0,0,640,384,0:REM Reset graphics screen
16140 GOSUB 5070:REM replace cursor
16150 RETURN

A Look at the Listing

  • Line 280 Press R for Rubber
  • Line 11010 Reset new variables
  • Line 16020-16040 Draw box around selected area.
  • Line 16100-16110 Calculate xs xe ys and ye
  • Line 16120 Change graphics screen to the box selected and CLear the Graphics screen.
  • Line 16130 Reset the graphics screen to the full screen apart from the top line.

Save the program as "Rubber" and RUN to test.

How to Use the Rubber

  • Draw something to erase
  • Select M and Move to a corner of the area you wish to rub out.
  • Press R
  • Use the arrow keys to select the block to be erased
  • Press J to change the jump size
  • Press F to erase what is within the block
  • Select Beam,Elastic etc to switch off the rubber.

CIRCLE AND SHAPES

Although it is possible to draw circles with the Arc routine this routine allows you to draw full circles, ellipses and shapes of any amount of sides. The horizontal radius and Vertical radius are asked for so the circles or shapes can be elliptical. The use of this routine is the same as the Arc routine when asking for the radius, after which the amount of sides are asked for with the start position (the start position is the bottom centre and the angle in degrees is clockwise see circle/shape drawing)

Considerations

  1. All shapes (triangle square polygon circle) to be produced.
  2. The start position of the shape can be stated.
  3. The size of the previous shape can be remembered to allow several shapes of the same size.

New Variables
side Amount of sides in the shape,
rx Radius horizontal,
ry Radius vertical,
sa Start Angle (changed from degree to radians.

The Listing ("Rubber" needs to be in the memory when typing in the listing)

29 REM Variables side (amount of sides in shape) sa (Start angle of shape)
300 IF INKEY(62)=0 THEN GOSUB 11000:mde$="CIRCLE":GOSUB 12000:GOSUB 7000:GOSUB 11000:GOSUB 12000:REM Press C for Circle/Shape routine
7000 REM Circle and Shape routine
7010 IF r=0 THEN r=40
7020 REM Input the horizontal radius and vertical radius to allow for ellipses, for circular objects set radius and press F twice
7030 start=-1:angle=PI/2:LOCATE 12,1:PRINT "Horizontal Radius":GOSUB 10030:rx=r:REM Use Arc routine
7040 FOR n=1 TO 20:CALL &BB1B:NEXT:REM Flush the buffer
7050 LOCATE 12,1:PRINT "Vertical Radius ":angle=0:GOSUB 10030:ry=r:start=0:REM Use arc routine
7060 ask$="Enter the amount of sides or Enter for circle":xx=12:l=3:str=0:GOSUB 3000:side=VAL(ans$)
7070 IF side=0 THEN side=100:REM If Enter is pressed set up a 100 part circle.
7080 IF side < 16 THEN ask$="Enter the start angle 0-360":xx=12:l=3:str=0:GOSUB 3000:sa=VAL(ans$):sa=2*PI*(sa/360)
7090 GOSUB 5070:REM remove cursor
7100 MOVE x+SIN(-PI+sa)*rx,y+COS(-PI+sa)*ry:REM move to the bottom of shape
7110 FOR n=-PI+sa TO PI+0.2+sa STEP (2*PI)/side:REM Calculate the positions for a circle of (side) sides
7120 DRAW x+SIN(n)*rx,y+COS(n)*ry,1:REM Draw a straight line between positions
7130 NEXT
7140 GOSUB 5070:REM replace cursor
7150 RETURN
7160 IF INKEY(53)=0 AND start=-1 THEN arc=1
7170 IF start<1 THEN GOSUB 5000:PRINT CHR$(23)+CHR$(1);:REM cursor keys
7180 IF start=-1 THEN arc=0:RETURN:REM Use the Arc routine but return at this point.
10055 IF INKEY(53)=0 AND start=-1 THEN arc=1:REM Selection of radius from the circle routine
10110 IF start<1 THEN GOSUB 5000:PRINT CHR$(23);CHR$(1);:REM cursor keys
10165 IF mde$="CIRCLE" THEN arc=0:RETURN:REM Return to the circle routine

A Look at the Listing

  • Line 300 Press C for Circlle routine,
  • Line 7010 Set radius to 40 if radius does not exist.
  • Line 7030-7060 Ask for radius x and y and the amount of sides. Line 7080 Ask for start position if the sides are below 16. When the amount of sides are 16 and above the shape is virtually a circle.
  • Line 7100 Move to the start position around the circle.
  • Line 10110 Use the cursor movement routine to allow positioning.

Save the whole listing as "EASY4" before running to test the new function.

EASTDRAW2 Commands So Far and when they were introduced

MONTH 1 (Program name "EASY1") Move cursor Use the arrow keys

  • CTRL+F Colour of Foreground
  • CTRL+B Colour of Background
  • CTRL+R Return the cursor tothe centre
  • CTRL+D Display the x and y position of the cursor. (On and Off)
  • B Switch on the beam
  • M Switch on Move

MONTH 2 (Program name "EASY2")

  • E Switch on Elastic Banding
  • F Fix line in position
  • CTRL+SHIFT+W Wipe the Screen Clear. 
  • J Input Jump size (step of cursor)

MONTH 3 (Program name "EASY3)

  • T Type in Text
  • T When text box is shown toggle between single and double size text.
  • F Fix text in Position ARC
  • A Select Arc
  • + Increase the radius
  • - Decrease the radius 
  • < Rotate anticlockwise
  • > Rotate clockwise
  • K Keyed inoput of radius
  • S Mark the start of the arc
  • F Mark the finish of the arc after start has been selected Arrow keys Move the centre of the arc

MONTH 4 (Program name "EASY4")

  • r Select Rubber
  • Arrow keys Change size of eraser block
  • F Erase within the block

Circle and Shape

  • As Arc for horizontal radius.
  • Press F when complete.
  • For Vertical radius as arc if the same radius as the horizontal is required just press F.
  • Answer the amount of sides Answer the start position if below 16 sides

Functions

All functions selected cancel previous selections.
Next Month there will be a module to Save, Load and Catalogue the disc and a module to paint an enclosed area with a pattern. At last your masterpiece can be saved to work on another day.

ACU

★ PUBLISHERS: Amstrad Computer User , Glycar Computing
★ YEAR: 1992
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ AUTHOR: GLYNNE DAVIES

★ AMSTRAD CPC ★ DOWNLOAD ★

File:
» Easydraw  2DATE: 2014-03-22
DL: 25 fois
TYPE: ZIP
SIZE: 33Ko
NOTE: 40 Cyls
.HFE: OUI

Je participe au site:
» Newfile(s) upload/Envoye de fichier(s)
★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » Am-Pix (Micromag)
» Applications » Minimag (Computing With the Amstrad)
» Applications » Modex (CPC Infos)
» Applications » Dao 3D - 2d (CPC Infos)
» Applications » Traitement de l'Image Part2a (CPC Revue)
» Applications » Art (CPC Revue)

QUE DIT LA LOI FRANÇAISE:

L'alinéa 8 de l'article L122-5 du Code de la propriété intellectuelle explique que « Lorsque l'œuvre a été divulguée, l'auteur ne peut interdire la reproduction d'une œuvre et sa représentation effectuées à des fins de conservation ou destinées à préserver les conditions de sa consultation à des fins de recherche ou détudes privées par des particuliers, dans les locaux de l'établissement et sur des terminaux dédiés par des bibliothèques accessibles au public, par des musées ou par des services d'archives, sous réserve que ceux-ci ne recherchent aucun avantage économique ou commercial ». Pas de problème donc pour nous!

CPCrulez[Content Management System] v8.75-desktop/c
Page créée en 110 millisecondes et consultée 408 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.