Archimedean spiral: Difference between revisions

m
syntax highlighting fixup automation
(Added Quackery)
m (syntax highlighting fixup automation)
Line 18:
=={{header|Action!}}==
Action! does not provide trigonometric functions. Therefore a simple implementation for Sin and Cos function has been provided.
<langsyntaxhighlight lang=Action!>INT ARRAY SinTab=[
0 4 9 13 18 22 27 31 36 40 44 49 53 58 62 66 71 75 79 83
88 92 96 100 104 108 112 116 120 124 128 132 136 139 143
Line 68:
DO UNTIL CH#$FF OD
CH=$FF
RETURN</langsyntaxhighlight>
{{out}}
[https://gitlab.com/amarok8bit/action-rosetta-code/-/raw/master/images/Archimedean_spiral.png Screenshot from Atari 8-bit computer]
Line 74:
=={{header|Ada}}==
{{libheader|SDLAda}}
<langsyntaxhighlight lang=Ada>with Ada.Numerics.Elementary_Functions;
 
with SDL.Video.Windows.Makers;
Line 145:
Window.Finalize;
SDL.Finalise;
end Archimedean_Spiral;</langsyntaxhighlight>
 
=={{header|ALGOL W}}==
{{Trans|AWK}}
This version doubles the characters horiontally to give a slightly more rounded shape.
<langsyntaxhighlight lang=algolw>begin % draw an Archimedian spiral %
% Translation of AWK which was a trnslation of Applesoft Basic program %
integer procedure max ( integer x, y ) ; begin if x > y then x else y end;
Line 191:
write()
end for_i
end.</langsyntaxhighlight>
{{out}}
<pre>
Line 240:
Uses Dyalog's [https://sharpplot.com/ SharpPlot] integration, which works on all supported platforms.
 
<langsyntaxhighlight lang=apl> 'InitCauseway' 'View' ⎕CY 'sharpplot'
InitCauseway ⍬ ⍝ initialise current namespace
sp←⎕NEW Causeway.SharpPlot
sp.DrawPolarChart {⍵(360|⍵)}⌽⍳720
View sp</langsyntaxhighlight>
 
[https://i.imgur.com/hZDqjjM.png See the plot on imgur.]
Line 250:
=={{header|AutoHotkey}}==
Requires [https://github.com/tariqporter/Gdip GDIP]
<langsyntaxhighlight lang=AutoHotkey>if !pToken := Gdip_Startup()
{
MsgBox, 48, gdiplus error!, Gdiplus failed to start. Please ensure you have gdiplus on your system
Line 300:
Gdip_Shutdown(pToken)
ExitApp
Return</langsyntaxhighlight>
 
=={{header|AWK}}==
<langsyntaxhighlight lang=AWK>
# syntax: GAWK -f ARCHIMEDEAN_SPIRAL.AWK
# converted from Applesoft BASIC
Line 339:
function max(x,y) { return((x > y) ? x : y) }
function min(x,y) { return((x < y) ? x : y) }
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 386:
==={{header|AmigaBASIC}}===
{{trans|Locomotive Basic}}
<langsyntaxhighlight lang=amigabasic>a=1.5
b=1.5
pi=3.141592
Line 394:
r=a+b*t
LINE -(320+2*r*SIN(t),100+r*COS(t))
NEXT</langsyntaxhighlight>
 
==={{header|Applesoft BASIC}}===
<langsyntaxhighlight lang=ApplesoftBasic>110 LET H = 96
120 LET W = H + H / 2
130 HGR2
Line 416:
280 HPLOT X,Y
290 NEXT
</syntaxhighlight>
</lang>
 
==={{header|BASIC256}}===
<langsyntaxhighlight lang=BASIC256>
# Basic-256 ver 1.1.4
# Archimedean Spiral
Line 452:
 
imgsave "spiral-Basic-256.png", "PNG"
</syntaxhighlight>
</lang>
 
 
Line 459:
==={{header|Commodore BASIC}}===
Commodore BASIC 2.0 lacks in-built graphics capability. This implementation is written for Commodore BASIC 7.0 that was built into the Commodore 128 computer. Should also work for Commodore BASIC 3.5.
<langsyntaxhighlight lang=basic>1 REM ARCHIMEDEAN SPIRAL
2 REM USING COMMODORE BASIC 7.0
3 REM OF THE COMMODORE 128
Line 473:
90 X0 = X : Y0 = Y
100 NEXT T
110 GOTO 110</langsyntaxhighlight>
 
==={{header|FreeBASIC}}===
<langsyntaxhighlight lang=freebasic>' version 16-10-2016
' compile with: fbc -s gui
 
Line 501:
Print : Print "hit any key to end program"
Sleep
End</langsyntaxhighlight>
 
==={{header|GW-BASIC}}===
<langsyntaxhighlight lang=gwbasic>10 A = 0
20 B = 1
30 SCREEN 1
Line 515:
100 IF INKEY$="" THEN GOTO 100
110 SCREEN 2:SCREEN 0
120 END</langsyntaxhighlight>
 
==={{header|IS-BASIC}}===
<langsyntaxhighlight lang=IS-BASIC>100 GRAPHICS LORES 2
110 OPTION ANGLE DEGREES
120 PLOT 640,360,ANGLE 90;
130 FOR I=2 TO 33.2 STEP .05
140 PLOT FORWARD I,LEFT 5;
150 NEXT</langsyntaxhighlight>
 
==={{header|Locomotive Basic}}===
{{trans|Commodore BASIC}}
<langsyntaxhighlight lang=locobasic>10 a=1.5:b=2
20 mode 2:rad:move 320,200
30 for t=0 to 40*pi step 0.2
Line 533:
50 draw r*sin(t)+320,r*cos(t)+200
60 next
70 while inkey$="":wend</langsyntaxhighlight>
 
==={{header|Run BASIC}}===
<langsyntaxhighlight lang=Run BASIC> 'archimedean spiral.bas
'runs in Run Basic
'Run Basic website http://www.runbasic.com
Line 562:
print "Thank you and Goodbye"
end
End</langsyntaxhighlight>
 
==={{header|QBasic}}===
<langsyntaxhighlight lang=qbasic>SCREEN 12
WINDOW (-2.67, -2!)-(2.67, 2!)
PI = 4 * ATN(1)
Line 576:
Y = (A + B * T) * SIN(T)
LINE -(X, Y)
NEXT</langsyntaxhighlight>
 
==={{header|Sinclair ZX81 BASIC}}===
{{trans|Applesoft BASIC}}
Works with the unexpanded (1k RAM) ZX81. The output is quite blocky, but identifiably a spiral.
<langsyntaxhighlight lang=basic>10 LET A=1.5
20 LET B=0.7
30 FOR T=0 TO 7*PI STEP 0.05
40 LET R=A+B*T
50 PLOT R*COS T+32,R*SIN T+22
60 NEXT T</langsyntaxhighlight>
{{out}}
Screenshot [http://edmundgriffiths.com/zx81archspiral.jpg here].
Line 593:
The BQN online REPL supports some basic plotting functionality through <code>•Plot</code>. This is used to create a spiral plotting function:
 
<langsyntaxhighlight lang=bqn>{(•math.Sin •Plot○(⊢×↕∘≠) •math.Cos) -(2×π) × 𝕩⥊(↕÷-⟜1)100}</langsyntaxhighlight>
 
When called with argument 200, it is similar to the given example diagram.
Line 603:
=={{header|C}}==
Interactive code which asks the parameters a and b as inputs, the number of cycles and the division steps. Requires the [http://www.cs.colorado.edu/~main/bgi/cs1300/ WinBGIm] library.
<syntaxhighlight lang=C>
<lang C>
#include<graphics.h>
#include<stdio.h>
Line 636:
closegraph();
}
</syntaxhighlight>
</lang>
 
=={{header|C sharp|C#}}==
 
<langsyntaxhighlight lang=csharp>using System;
using System.Linq;
using System.Drawing;
Line 679:
}
}
</syntaxhighlight>
</lang>
 
=={{header|C++}}==
[[File:SpiralCpp.png|200px|thumb|right]]
<langsyntaxhighlight lang=cpp>
#include <windows.h>
#include <string>
Line 794:
spiral s; s.draw( 16, 8 ); return 0;
}
</syntaxhighlight>
</lang>
 
=={{header|Clojure}}==
{{Works with| Incanter}}
<langsyntaxhighlight lang=clojure>
(use '(incanter core stats charts io))
 
Line 814:
(view (parametric-plot arq-spiral 0 (* 10 Math/PI)))
 
</syntaxhighlight>
</lang>
<pre> </pre>
 
Line 821:
Common Lisp doesn't provide native graphical output. Libraries or bitmapped output could be used instead, but for this solution, the output is accomplished with character printing.
 
<langsyntaxhighlight lang=lisp>(defun draw-coords-as-text (coords size fill-char)
(let* ((min-x (apply #'min (mapcar #'car coords)))
(min-y (apply #'min (mapcar #'cdr coords)))
Line 891:
 
 
</syntaxhighlight>
</lang>
 
=={{header|FOCAL}}==
<langsyntaxhighlight lang=FOCAL>1.1 S A=1.5
1.2 S B=2
1.3 S N=250
Line 910:
 
4.1 S X2=R*FSIN(.2*(T+1))
4.2 S Y2=R*FCOS(.2*(T+1))</langsyntaxhighlight>
This program uses FOCAL-11 on a DEC GT40 vector graphics terminal.
 
Line 918:
{{Works with|Frege|3.23.888}}
 
<langsyntaxhighlight lang=frege>module Archimedean where
 
import Java.IO
Line 1,006:
drawSpiral g
f <- File.new "SpiralFrege.png"
void $ ImageIO.write buffy "png" f</langsyntaxhighlight>
 
Output is [http://funwithsoftware.org/images/2016-SpiralFrege.png here] due to [[User talk:Short Circuit#Is file uploading blocked forever?|Is file uploading blocked forever?]]
Line 1,013:
{{works with|go|1.9}}
Creates a PNG file using only built-in packages.
<langsyntaxhighlight lang=go>package main
 
import (
Line 1,060:
log.Fatal(err)
}
}</langsyntaxhighlight>
 
=={{header|Haskell}}==
Line 1,067:
{{libheader|Juicy.Pixels}}
{{libheader|Rasterific}}
<langsyntaxhighlight lang=haskell>#!/usr/bin/env stack
-- stack --resolver lts-7.0 --install-ghc runghc --package Rasterific --package JuicyPixels
 
Line 1,093:
polyline points
 
writePng "SpiralHaskell.png" img</langsyntaxhighlight>
 
Output is [http://funwithsoftware.org/images/2016-SpiralHaskell.png here] due to [[User talk:Short Circuit#Is file uploading blocked forever?|Is file uploading blocked forever?]]
Line 1,099:
=={{header|J}}==
[[File:Archimedian spiral j.png|200px|thumb|right]]
<langsyntaxhighlight lang=j>require'plot'
'aspect 1' plot (*^)j.0.01*i.1400</langsyntaxhighlight>
 
<div style="clear:both"></div>
Line 1,107:
[[File:archimedian_spiral.png|300px|thumb|right]]
{{works with|Java|8}}
<langsyntaxhighlight lang=java>import java.awt.*;
import static java.lang.Math.*;
import javax.swing.*;
Line 1,190:
});
}
}</langsyntaxhighlight>
 
=={{header|JavaScript}}==
Line 1,196:
{{Works with|Chrome}}
[[File:ASjs.png|200px|right|thumb|Output ASjs.png]]
<langsyntaxhighlight lang=html>
<!-- ArchiSpiral.html -->
<html>
Line 1,221:
}
</script></body></html>
</syntaxhighlight>
</lang>
{{Output}}
<pre>
Line 1,231:
Assumes the same HTML canvas embedding as above, but is functionally composed.
Defines and logs a set of points, before rendering them to canvas.
<langsyntaxhighlight lang=html><html>
<head>
<title>Archimedean spiral</title>
Line 1,239:
<h3>Archimedean spiral</h3></p>
<canvas id="spiral" width="640" height="640" style="border: 2px outset;"></canvas>
<script></langsyntaxhighlight>
<langsyntaxhighlight lang=javascript>const main = strColor => intCycles => {
const
ai = 0.05,
Line 1,272:
Array.from({
length: 1 + n - m
}, (_, i) => m + i);</langsyntaxhighlight>
<langsyntaxhighlight lang=html></script></body></html></langsyntaxhighlight>
 
=={{header|jq}}==
Line 1,279:
'''Works with gojq, the Go implementation of jq'''
====SVG version====
<langsyntaxhighlight lang=jq>def spiral($zero; $turns; $step):
 
def pi: 1 | atan * 4;
Line 1,304:
 
spiral(0; 10; 0.025)
</syntaxhighlight>
</lang>
{{out}}
 
Line 1,312:
====ASCII Art Version====
{{trans|awk}}
<langsyntaxhighlight lang=jq>def spiral($a; $b; $step; $h):
def min($x;$y): if $x <= $y then $x else $y end;
def max($x;$y): if $x <= $y then $y else $x end;
Line 1,342:
| "\(.)\n" ;
 
spiral(1; 1; 0.02; 96)</langsyntaxhighlight>
{{out}}
As for [[#awk|awk]].
Line 1,349:
{{works with|Julia|0.6}}
 
<langsyntaxhighlight lang=julia>using UnicodePlots
 
spiral(θ, a=0, b=1) = @. b * θ * cos(θ + a), b * θ * sin(θ + a)
 
x, y = spiral(1:0.1:10)
println(lineplot(x, y))</langsyntaxhighlight>
 
{{out}}
Line 1,379:
=={{header|Kotlin}}==
{{trans|Java}}
<langsyntaxhighlight lang=scala>// version 1.1.0
 
import java.awt.*
Line 1,454:
f.isVisible = true
}
}</langsyntaxhighlight>
 
=={{header|Lua}}==
{{libheader|LÖVE}}
{{works with|LÖVE|11.3}}
<langsyntaxhighlight lang=Lua>
a=1
b=2
Line 1,480:
end
end
</syntaxhighlight>
</lang>
 
=={{header|M2000 Interpreter}}==
<langsyntaxhighlight lang=M2000 Interpreter>
module Archimedean_spiral {
smooth on ' enable GDI+
Line 1,510:
}
Archimedean_spiral
</syntaxhighlight>
</lang>
 
=={{header|Maple}}==
<langsyntaxhighlight lang=Maple>
plots[polarplot](1+2*theta, theta = 0 .. 6*Pi)
</syntaxhighlight>
</lang>
 
=={{header|Mathematica}}/{{header|Wolfram Language}}==
The built-in function PolarPlot easily creates the desired plot
<langsyntaxhighlight lang=Mathematica>With[{a = 5, b = 4}, PolarPlot[a + b t, {t, 0, 10 Pi}]]</langsyntaxhighlight>
 
=={{header|MATLAB}}==
<langsyntaxhighlight lang=MATLAB>a = 1;
b = 1;
turns = 2;
theta = 0:0.1:2*turns*pi;
polarplot(theta, a + b*theta);</langsyntaxhighlight>
 
=={{header|Nim}}==
{{libheader|gintro}}
<langsyntaxhighlight lang=Nim>import math
 
import gintro/[glib, gobject, gtk, gio, cairo]
Line 1,603:
let app = newApplication(Application, "Rosetta.spiral")
discard app.connect("activate", activate)
discard app.run()</langsyntaxhighlight>
 
=={{header|PARI/GP}}==
Line 1,611:
[[File:ArchiSpiral2.png|right|thumb|Output ArchiSpiral2.png]]
 
<langsyntaxhighlight lang=parigp>
\\ The Archimedean spiral
\\ ArchiSpiral() - Where: lps is a number of loops, c is a direction 0/1
Line 1,631:
ArchiSpiral(640,5,1); \\ArchiSpiral2.png
}
</langsyntaxhighlight>
{{Output}}
Line 1,644:
=={{header|Perl}}==
{{trans|Raku}}
<langsyntaxhighlight lang=Perl>use Imager;
use constant PI => 3.14159265;
 
Line 1,657:
 
$img->write(file => 'Archimedean-spiral.png');
</syntaxhighlight>
</lang>
 
=={{header|Phix}}==
Line 1,664:
{{libheader|Phix/online}}
You can run this online [http://phix.x10.mx/p2js/Archimedean_spiral.htm here].
<!--<langsyntaxhighlight lang=Phix>(phixonline)-->
<span style="color: #000080;font-style:italic;">--
-- demo\rosetta\Archimedean_spiral.exw
Line 1,713:
<span style="color: #000000;">main</span><span style="color: #0000FF;">()</span>
<!--</langsyntaxhighlight>-->
 
=={{header|Processing}}==
Line 1,720:
====with points====
When drawn with points the rotation must be very small, and initially the animation is very slow. This is because the points will move further and further apart as the radius increases.
<langsyntaxhighlight lang=Processing>float x, y;
float theta;
float rotation;
Line 1,739:
// check restart
if (x>width/2.0) frameCount=-1;
}</langsyntaxhighlight>
 
====with points, rotated====
Rotates the canvas matrix using the built-in rotate() and draws a simple point, rather than computing rotated coordinates with sin()/cos().
<langsyntaxhighlight lang=Processing>float theta;
float rotation;
 
Line 1,760:
// check restart
if (theta>width/2.0) frameCount=-1;
}</langsyntaxhighlight>
 
====with points, vector====
Rotates a vector object of increasing magnitude using the built-in PVector and draws its point, rather than computing rotated coordinates with sin()/cos().
<langsyntaxhighlight lang=Processing>PVector pv;
float rotation;
 
Line 1,782:
// check restart
if (pv.mag()>width/2.0) frameCount=-1;
}</langsyntaxhighlight>
 
====with line segments====
Draw each new line segments anchored to the previous point in order to keep the spiral visually connected no matter how much the radius expands.
<langsyntaxhighlight lang=Processing>float px, py, x, y;
float theta;
float rotation;
Line 1,807:
// check restart
if (px>width/2.0) frameCount=-1;
}</langsyntaxhighlight>
 
====with line segments, rotated====
Uses the built-in rotate() and screenX() to rotate the frame of reference and then recover the rotated screen position of each next point. Draw each new line segments anchored to the previous point in order to keep the spiral visually connected no matter how much the radius expands.
<langsyntaxhighlight lang=Processing>float x, y, px, py;
float theta;
float rotation;
Line 1,836:
py = y;
if (theta>width/2.0) frameCount=-1; // start over
}</langsyntaxhighlight>
 
==={{header|Processing Python mode}}===
====with points====
When drawn with points the rotation must be very small, and initially the animation is very slow. This is because the points will move further and further apart as the radius increases.
<langsyntaxhighlight lang=python>theta = 0
rotation = 0.1
 
Line 1,858:
if x > width / 2.0:
background(255)
theta = 0</langsyntaxhighlight>
 
=={{header|PureBasic}}==
<langsyntaxhighlight lang=PureBasic>#MAXLOOP = 7*360
#XCENTER = 640/2
#YCENTER = 480/2
Line 1,882:
Repeat : Event = WaitWindowEvent() : Until Event = #PB_Event_CloseWindow
EndIf
End</langsyntaxhighlight>
 
=={{header|Python}}==
Using the '''turtle''' module.
 
<langsyntaxhighlight lang=python>from turtle import *
from math import *
color("blue")
Line 1,897:
goto(x, y)
up()
done()</langsyntaxhighlight>
 
=={{header|Quackery}}==
 
<langsyntaxhighlight lang=Quackery> [ $ "turtleduck.qky" loadfile ] now!
turtle
0 n->v
Line 1,908:
1 20 v+
1 36 turn ]
2drop</langsyntaxhighlight>
 
{{out}}
Line 1,915:
 
=={{header|R}}==
<langsyntaxhighlight lang=r>with(list(s=seq(0, 10 * pi, length.out=500)),
plot((1 + s) * exp(1i * s), type="l"))</langsyntaxhighlight>
 
=={{header|Racket}}==
 
[[File:archemedian-spiral-racket.png]]
<langsyntaxhighlight lang=racket>#lang racket/base
(require plot
racket/math)
Line 1,942:
;; writes to a file so hopefully, I can post it to RC...
(plot-file (list (archemedian-spiral-renderer2d 0.0 24 4))
"images/archemidian-spiral-racket.png")</langsyntaxhighlight>
 
=={{header|Raku}}==
Line 1,948:
{{works with|Rakudo|2018.10}}
 
<langsyntaxhighlight lang=perl6>use Image::PNG::Portable;
 
my ($w, $h) = (400, 400);
Line 1,958:
}
 
$png.write: 'Archimedean-spiral-perl6.png';</langsyntaxhighlight>
 
=={{header|REXX}}==
Line 1,964:
 
Note: &nbsp; the value of &nbsp; <big><big> ''a'' </big></big> &nbsp; doesn't mean that much as the plot is automatically centered.
<langsyntaxhighlight lang=rexx>/*REXX pgm plots several cycles (half a spiral) of the Archimedean spiral (ASCII plot).*/
parse arg cy a b inc chr . /*obtain optional arguments from the CL*/
if cy=='' | cy=="," then cy= 3 /*Not specified? Then use the default.*/
Line 2,005:
if x=pi * .5 then return 1; if x==pi*1.5 then return -1
if abs(x)=pi | x=0 then return 0; q= x*x; z= x
do k=2 by 2 until p=z; p= z; _= -_ *q/(k*k+k); z= z+_; end; return z</langsyntaxhighlight>
{{out|output|text=&nbsp; when using the following inputs: &nbsp; <tt> &nbsp; 13 &nbsp; , &nbsp; 5 &nbsp; , &nbsp; db </tt>}}
 
Line 2,205:
 
=={{header|Ring}}==
<langsyntaxhighlight lang=ring>
/*
+---------------------------------------------------------------------------------------------------------
Line 2,310:
return
</syntaxhighlight>
</lang>
 
=={{header|Ruby}}==
Line 2,316:
{{libheader|JRubyArt}}
JRubyArt is an implementation of Processing in ruby, that uses JRuby to provide the interoperability with the java libraries.
<langsyntaxhighlight lang=ruby>
INCR = 0.1
attr_reader :x, :theta
Line 2,337:
size(300, 300)
end
</syntaxhighlight>
</lang>
 
=={{header|Rust}}==
<langsyntaxhighlight lang=rust>#[macro_use(px)]
extern crate bmp;
 
Line 2,371:
// Save the image
let _ = img.save("archimedean_spiral.bmp").unwrap_or_else(|e| panic!("Failed to save: {}", e));
}</langsyntaxhighlight>
 
=={{header|SAS}}==
<langsyntaxhighlight lang=sas>data xy;
h=constant('pi')/40;
do i=0 to 400;
Line 2,387:
proc sgplot;
series x=x y=y;
run;</langsyntaxhighlight>
 
=={{header|Scala}}==
===Java Swing Interoperability===
<langsyntaxhighlight lang=Scala>
 
object ArchimedeanSpiral extends App {
Line 2,458:
)
 
}</langsyntaxhighlight>
 
=={{header|Scheme}}==
{{libheader|Scheme/PsTk}}
 
<langsyntaxhighlight lang=scheme>
(import (scheme base)
(scheme complex)
Line 2,498:
(draw-spiral canvas))
(tk-event-loop tk))
</syntaxhighlight>
</lang>
 
=={{header|Scilab}}==
Line 2,518:
 
scf(2);
plot2d(x,y);</langsyntaxhighlight>
 
=={{header|Seed7}}==
 
<langsyntaxhighlight lang=seed7>$ include "seed7_05.s7i";
include "draw.s7i";
include "keybd.s7i";
Line 2,548:
DRAW_FLUSH;
ignore(getc(KEYBOARD));
end func;</langsyntaxhighlight>
 
=={{header|Sidef}}==
{{trans|Raku}}
<langsyntaxhighlight lang=ruby>require('Imager')
define π = Num.pi
 
Line 2,566:
}
 
img.write(file => 'Archimedean_spiral.png')</langsyntaxhighlight>
Output image: [https://github.com/trizen/rc/blob/master/img/archimedean-spiral-sidef.png Archimedean spiral]
 
=={{header|Stata}}==
<langsyntaxhighlight lang=stata>clear all
scalar h=_pi/40
set obs 400
Line 2,576:
gen x=(1+t)*cos(t)
gen y=(1+t)*sin(t)
line y x</langsyntaxhighlight>
 
=={{header|Tcl}}==
This creates a little Tk GUI where you can interactively enter values for `a` and `b`. The spiral will be re-drawn automatically thanks to `trace`:
 
<langsyntaxhighlight lang=Tcl>package require Tk
 
# create widgets
Line 2,645:
update ;# lay out widgets before trying to draw
draw
vwait forever ;# go into event loop until window is closed</langsyntaxhighlight>
 
=={{header|VBA}}==
<langsyntaxhighlight lang=vb>Private Sub plot_coordinate_pairs(x As Variant, y As Variant)
Dim chrt As Chart
Set chrt = ActiveSheet.Shapes.AddChart.Chart
Line 2,670:
Next i
plot_coordinate_pairs x, y
End Sub</langsyntaxhighlight>
 
=={{header|Wren}}==
{{trans|Sidef}}
{{libheader|DOME}}
<langsyntaxhighlight lang=ecmascript>import "graphics" for Canvas, Color
import "dome" for Window
 
Line 2,702:
 
static draw(dt) {}
}</langsyntaxhighlight>
 
=={{header|XPL0}}==
Looks a lot like the C++ image.
<langsyntaxhighlight lang=XPL0>real A, B, R, T, X, Y;
[SetVid($12); \set 640x480 graphics
A:= 0.0; B:= 3.0; T:= 0.0;
Line 2,715:
T:= T + 0.03; \increase angle (Theta)
until T >= 314.159; \50 revs
]</langsyntaxhighlight>
 
=={{header|Yabasic}}==
{{trans|Sinclair_ZX81_BASIC}}
<langsyntaxhighlight lang=Yabasic>5 OPEN WINDOW 320, 200 : WINDOW ORIGIN "CC"
10 LET A=1.5
20 LET B=0.7
Line 2,725:
40 LET R=A+B*T
50 LINE TO R*COS(T),R*SIN(T)
60 NEXT T</langsyntaxhighlight>
 
=={{header|zkl}}==
[[File:ArchimedeanSpiral.zk.jpg|250px|thumb|right]]
Uses the PPM class from http://rosettacode.org/wiki/Bitmap/Bresenham%27s_line_algorithm#zkl
<langsyntaxhighlight lang=zkl>fcn archimedeanSpiral(a,b,circles){
w,h:=640,640; centerX,centerY:=w/2,h/2;
bitmap:=PPM(w+1,h+1,0xFF|FF|FF); // White background
Line 2,741:
}
bitmap.writeJPGFile("archimedeanSpiral.jpg");
}(0,5,7);</langsyntaxhighlight>
10,333

edits