KnowledgeBase Archive

An Archive of Early Microsoft KnowledgeBase Articles

View on GitHub

Q67374: CIRCLE(x,y),rad,,-0.1,0 Draws Only the Radius in BASIC

Article: Q67374
Product(s): See article
Version(s): 6.00 6.00b 7.00 7.10
Operating System(s): MS-DOS
Keyword(s): ENDUSER | B_MQuickB B_QuickBas | mspl13_basic
Last Modified: 17-JAN-1991

This article describes a problem with the CIRCLE statement. The CIRCLE
command takes the following parameters:

   CIRCLE[STEP](x,y),radius!,,start!,stop!

If you specify start! and stop!, with start! slightly larger than
stop!, then the CIRCLE command should draw an almost complete circle.
However, if the difference between start! and stop! is very small,
CIRCLE may draw only a point or radius, instead of an almost complete
circle. This problem happens in both the interpreter environment and
in compiled programs.

Microsoft has confirmed this to be a problem in Microsoft QuickBASIC
version 1.00 (buglist1.00) for Apple Macintosh systems; in Microsoft
QuickBASIC versions 4.00, 4.00b, and 4.50 (buglist4.00, buglist4.00b,
buglist4.50) for MS-DOS; in Microsoft BASIC Compiler versions 6.00 and
6.00b (buglist6.00, buglist6.00b) for MS-DOS and MS OS/2; and in
Microsoft BASIC Professional System (PDS) versions 7.00 and 7.10
(buglist7.00, buglist7.10) for MS-DOS and OS/2. We are researching
this problem and will post new information here as it becomes
available.

Changing the size of radius changes the requirement for the distance
between start! and stop! necessary to reproduce the problem. When
start! is near zero, leaving off the stop! will produce different
results than if stop! is specified. Use the following code examples
to reproduce the problems described above.

Code Examples
-------------

' When start! or stop! is negative, CIRCLE draws a radius and
' treats the angle as positive. Without the negative sign, no
' radius is drawn.
'
SCREEN 12  'Problem occurs in any graphics screen mode.
10 CIRCLE (50, 50), 50, , -.01         'Works correctly.
20 CIRCLE (50, 150), 50, , -.01, 0     'Should be same as line
                                       '10 but draws only the radius.
30 CIRCLE (50, 250), 50, , -.011, 0    'Slightly larger difference
                                       'from start & stop works.
40 CIRCLE (420, 240), 200, , -.01, 0   'This works with same end/start
                                       'as line 20 but has larger
                                       'radius

On the Apple Macintosh, use the following code:

CIRCLE (50, 50) 10, ,-0.001, 0

THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Copyright Microsoft Corporation 1986-2002.