├── LICENSE ├── README.md ├── abs.go ├── alpha ├── README.md ├── alpha.png └── main.go ├── apisheet.png ├── apisheet ├── README.md ├── apisheet.png ├── earth.jpg ├── logo.png └── main.go ├── arc ├── README.md ├── arc.png └── main.go ├── arclines └── main.go ├── bc.sh ├── bezsketch └── README.md ├── cchue ├── README.md ├── cchue.png └── main.go ├── chart └── chart.go ├── chartest ├── README.md ├── chart.png ├── cos.d ├── f.d ├── main.go └── sine.d ├── cl ├── colors.go ├── colorwall ├── README.md ├── colors.png └── main.go ├── compchart ├── README.md ├── compchart.png └── main.go ├── concentric ├── README.md ├── concentric.png └── main.go ├── confetti ├── README.md ├── confetti.png └── main.go ├── conv.go ├── desordres ├── ajs.pal ├── default.pal ├── main.go └── readpalette.go ├── dots ├── README.md ├── dots.png └── main.go ├── dotspiral └── main.go ├── eclipse ├── README.md ├── eclipse.png └── main.go ├── elections ├── 1920.d ├── 1924.d ├── 1928.d ├── 1932.d ├── 1936.d ├── 1940.d ├── 1944.d ├── 1948.d ├── 1952.d ├── 1956.d ├── 1960.d ├── 1964.d ├── 1968.d ├── 1972.d ├── 1976.d ├── 1980.d ├── 1984.d ├── 1988.d ├── 1992.d ├── 1996.d ├── 2000.d ├── 2004.d ├── 2008.d ├── 2012.d ├── 2016.d ├── 2020.d ├── Go-Bold.ttf ├── Go-Regular.ttf ├── README.md ├── abbr.d ├── elections.png ├── fips.d ├── grid.d ├── main.go ├── nyt-1792.d ├── nyt-1796.d ├── nyt-1800.d ├── nyt-1804.d ├── nyt-1808.d ├── nyt-1812.d ├── nyt-1816.d ├── nyt-1820.d ├── nyt-1824.d ├── nyt-1828.d ├── nyt-1832.d ├── nyt-1836.d ├── nyt-1840.d ├── nyt-1844.d ├── nyt-1848.d ├── nyt-1852.d ├── nyt-1856.d ├── nyt-1860.d ├── nyt-1864.d ├── nyt-1868.d ├── nyt-1872.d ├── nyt-1876.d ├── nyt-1880.d ├── nyt-1884.d ├── nyt-1888.d ├── nyt-1892.d ├── nyt-1896.d ├── nyt-1900.d ├── nyt-1904.d ├── nyt-1908.d ├── nyt-1912.d ├── nyt-1916.d ├── nyt-1920.d ├── nyt-1924.d ├── nyt-1928.d ├── nyt-1932.d ├── nyt-1936.d ├── nyt-1940.d ├── nyt-1944.d ├── nyt-1948.d ├── nyt-1952.d ├── nyt-1956.d ├── nyt-1960.d ├── nyt-1964.d ├── nyt-1968.d ├── nyt-1972.d ├── nyt-1976.d ├── nyt-1980.d ├── nyt-1984.d ├── nyt-1988.d ├── nyt-1992.d ├── nyt-1996.d ├── nyt-2000.d ├── nyt-2004.d ├── nyt-2008.d ├── nyt-2012.d ├── nyt-2016.d ├── nyt-2020.d ├── nyt-2024.d ├── nyt-layout.d └── stateface.ttf ├── flowers ├── README.md ├── flowers.png └── main.go ├── fox ├── README.md ├── ajs.pal ├── ajstarks.png ├── default.pal ├── hot.png ├── main.go ├── pen-n-paper.png ├── rainbox.png └── readpalette.go ├── gcdeck ├── README.md ├── cloudy.jpg ├── earth.jpg ├── follow.jpg ├── gcdeck.png ├── gcdeck0.png ├── gcdeck1.png ├── hw ├── main.go ├── pct.d ├── qb.txt ├── rand.d ├── scale.dsh ├── scale.xml ├── t.dsh ├── t.xml ├── test.dsh ├── test.pdf └── test.xml ├── gchart ├── README.md ├── aapl-vol.d ├── allcharts ├── allcharts-x.png ├── allcharts.png ├── appl-close.d ├── area-x.png ├── area.png ├── bar-x.png ├── bar-z.png ├── bar.png ├── br.d ├── browser.d ├── c19.d ├── combo-x.png ├── combo.png ├── cos.d ├── data.d ├── dotchart-x.png ├── gchart-sine.png ├── hbar-x.png ├── lego-x.png ├── lego.png ├── line-x.png ├── line.png ├── main.go ├── pie-x.png ├── pie.png ├── pop.d ├── rand.d ├── scatter-x.png ├── scatter.png ├── sin.d ├── sincon.d └── wbar-x.png ├── giocanvas-grid.png ├── giocanvas.go ├── giocanvas_test.go ├── go.mod ├── go.sum ├── grid ├── README.md ├── grid.png └── main.go ├── hello ├── README.md ├── earth.jpg ├── hello.png └── main.go ├── images ├── README.md ├── earth.jpg ├── images.png └── main.go ├── lego ├── README.md ├── lego.png └── main.go ├── lines ├── README.md ├── lines.png └── main.go ├── misc ├── b1m.d ├── b2m.d ├── bdiff.dsh └── gio.dsh ├── mondrian ├── README.md ├── main.go └── mondrian.png ├── pct.go ├── pie ├── 2009-01.d ├── 2010-01.d ├── 2011-01.d ├── 2012-01.d ├── 2013-01.d ├── 2014-01.d ├── 2015-01.d ├── 2016-01.d ├── 2017-01.d ├── 2018-01.d ├── 2019-01.d ├── 2020-06.d ├── 2021-09.d ├── README.md ├── main.go └── pie.png ├── play ├── README.md ├── earth.jpg ├── follow.jpg ├── giocanvas.png ├── logo.png ├── main.go └── play.png ├── polar ├── README.md ├── main.go └── polar.png ├── presentation ├── clients.dsh ├── code │ ├── chartbox.go │ ├── chartread.go │ ├── composite.go │ ├── cos.d │ ├── cosine.d │ ├── earth.jpg │ ├── hello.go │ ├── side-by-side.go │ ├── sin.d │ └── sine.d ├── gc.dsh ├── gc.pdf ├── images │ ├── c19.png │ ├── client-api.png │ ├── clients.png │ ├── comp.png │ ├── compchart.png │ ├── concentric.png │ ├── confetti.png │ ├── eclipse.png │ ├── flowers.png │ ├── gc0.png │ ├── gc1.png │ ├── gchart-sine.png │ ├── gchart1.png │ ├── hello.png │ ├── lines.png │ ├── mondrian.png │ ├── play.png │ ├── polar.png │ ├── side-by-side.png │ ├── sine+cosine.png │ ├── sunearth.png │ ├── tile.png │ ├── transform.png │ └── twrap.png ├── mkdeck └── showgrid.dsh ├── rc.sh ├── rgb ├── README.md ├── main.go └── rgb.png ├── rl ├── README.md ├── main.go └── rl.png ├── run-cpu.sh ├── scim ├── README.md ├── earth.jpg ├── main.go ├── scim01.png └── scim02.png ├── shapesketch ├── README.md ├── arc.png ├── circle.png ├── curve.png ├── dark-curve.png ├── default.png ├── ellipse.png ├── line.png ├── main.go ├── rect.png └── square.png ├── showfonts ├── Go-Bold-Italic.ttf ├── Go-Bold.ttf ├── Go-Italic.ttf ├── Go-Medium-Italic.ttf ├── Go-Medium.ttf ├── Go-Mono-Bold-Italic.ttf ├── Go-Mono-Bold.ttf ├── Go-Mono-Italic.ttf ├── Go-Mono.ttf ├── Go-Regular.ttf ├── Go-Smallcaps-Italic.ttf ├── Go-Smallcaps.ttf ├── OpenSans-Bold.ttf ├── OpenSans-BoldItalic.ttf ├── OpenSans-ExtraBold.ttf ├── OpenSans-ExtraBoldItalic.ttf ├── OpenSans-Italic.ttf ├── OpenSans-Light.ttf ├── OpenSans-LightItalic.ttf ├── OpenSans-Regular.ttf ├── OpenSans-Semibold.ttf ├── OpenSans-SemiboldItalic.ttf ├── README.md ├── gofonts.png ├── main.go ├── message.png └── other.png ├── showimage ├── README.md ├── main.go └── showimage.png ├── spiral ├── README.md ├── main.go └── spiral.png ├── sunearth ├── README.md ├── earth.jpg ├── main.go └── sunearth.png ├── template ├── tile ├── README.md ├── main.go └── tile.png ├── transform ├── README.md ├── main.go ├── transform.png └── transforms.png ├── transforms.go ├── twrap ├── README.md ├── main.go └── twrap.png └── update /README.md: -------------------------------------------------------------------------------- 1 | # giocanvas -- a canvas API built on top of gio 2 | 3 | ![canvas API](apisheet.png) 4 | -------------------------------------------------------------------------------- /alpha/README.md: -------------------------------------------------------------------------------- 1 | # alpha -- test object alpha values 2 | ![alpha](alpha.png) 3 | -------------------------------------------------------------------------------- /alpha/alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/alpha/alpha.png -------------------------------------------------------------------------------- /alpha/main.go: -------------------------------------------------------------------------------- 1 | // alpha 2 | package main 3 | 4 | import ( 5 | "flag" 6 | "io" 7 | "os" 8 | "strconv" 9 | 10 | "gioui.org/app" 11 | "gioui.org/unit" 12 | "github.com/ajstarks/giocanvas" 13 | ) 14 | 15 | func alpha(w *app.Window, color string) error { 16 | blue := giocanvas.ColorLookup("steelblue") 17 | gray := giocanvas.ColorLookup("gray") 18 | dotcolor := giocanvas.ColorLookup(color) 19 | var x, y, px, dotsize, interval float32 20 | y = 50 21 | px = 2 22 | dotsize = 0.8 23 | interval = dotsize * 2.4 24 | for { 25 | e := w.Event() 26 | switch e := e.(type) { 27 | case app.DestroyEvent: 28 | return e.Err 29 | case app.FrameEvent: 30 | canvas := giocanvas.NewCanvas(float32(e.Size.X), float32(e.Size.Y), app.FrameEvent{}) 31 | canvas.CText(50, y+12, 1.5, "Alpha", blue) 32 | canvas.CText(50, y-18, 1.5, "% Alpha", gray) 33 | px, y = 2, 50 34 | for x = 0; x <= 100; x += 2 { 35 | dotcolor.A = uint8((x / 100) * 255) 36 | canvas.Circle(px, y, dotsize, dotcolor) 37 | canvas.TextMid(px, y-8, 0.75, strconv.FormatFloat(float64(x), 'g', -1, 32), gray) 38 | canvas.TextMid(px, y+5, 0.75, strconv.FormatInt(int64(dotcolor.A), 10), blue) 39 | px += interval 40 | 41 | } 42 | e.Frame(canvas.Context.Ops) 43 | 44 | } 45 | } 46 | } 47 | 48 | func main() { 49 | var cw, ch int 50 | var color string 51 | flag.IntVar(&cw, "width", 1800, "canvas width") 52 | flag.IntVar(&ch, "height", 600, "canvas height") 53 | flag.StringVar(&color, "color", "black", "color") 54 | flag.Parse() 55 | width := float32(cw) 56 | height := float32(ch) 57 | 58 | go func() { 59 | w := &app.Window{} 60 | w.Option(app.Title("alpha"), app.Size(unit.Dp(width), unit.Dp(height))) 61 | if err := alpha(w, color); err != nil { 62 | io.WriteString(os.Stderr, "Cannot create the window\n") 63 | os.Exit(1) 64 | } 65 | os.Exit(0) 66 | }() 67 | app.Main() 68 | } 69 | -------------------------------------------------------------------------------- /apisheet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/apisheet.png -------------------------------------------------------------------------------- /apisheet/README.md: -------------------------------------------------------------------------------- 1 | # API Reference 2 | ![apisheet](apisheet.png) 3 | -------------------------------------------------------------------------------- /apisheet/apisheet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/apisheet/apisheet.png -------------------------------------------------------------------------------- /apisheet/earth.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/apisheet/earth.jpg -------------------------------------------------------------------------------- /apisheet/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/apisheet/logo.png -------------------------------------------------------------------------------- /arc/README.md: -------------------------------------------------------------------------------- 1 | # Arc Test 2 | ![arc](arc.png) 3 | -------------------------------------------------------------------------------- /arc/arc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/arc/arc.png -------------------------------------------------------------------------------- /bc.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | for i in $(cat cl) 3 | do 4 | cd $i 5 | echo -n "$i " 6 | go build $* -ldflags="-s -w" . 7 | cd .. 8 | done 9 | echo 10 | -------------------------------------------------------------------------------- /bezsketch/README.md: -------------------------------------------------------------------------------- 1 | See shapesketch 2 | -------------------------------------------------------------------------------- /cchue/README.md: -------------------------------------------------------------------------------- 1 | # cchue 2 | ![cchue](cchue.png) 3 | -------------------------------------------------------------------------------- /cchue/cchue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/cchue/cchue.png -------------------------------------------------------------------------------- /chartest/README.md: -------------------------------------------------------------------------------- 1 | # chart 2 | 3 | ![chart](chart.png) -------------------------------------------------------------------------------- /chartest/chart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/chartest/chart.png -------------------------------------------------------------------------------- /chartest/cos.d: -------------------------------------------------------------------------------- 1 | # y=cos(x) 2 | 0.00 1.0000 3 | 0.10 0.9950 4 | 0.20 0.9801 5 | 0.30 0.9553 6 | 0.40 0.9211 7 | 0.50 0.8776 8 | 0.60 0.8253 9 | 0.70 0.7648 10 | 0.80 0.6967 11 | 0.90 0.6216 12 | 1.00 0.5403 13 | 1.10 0.4536 14 | 1.20 0.3624 15 | 1.30 0.2675 16 | 1.40 0.1700 17 | 1.50 0.0707 18 | 1.60 -0.0292 19 | 1.70 -0.1288 20 | 1.80 -0.2272 21 | 1.90 -0.3233 22 | 2.00 -0.4161 23 | 2.10 -0.5048 24 | 2.20 -0.5885 25 | 2.30 -0.6663 26 | 2.40 -0.7374 27 | 2.50 -0.8011 28 | 2.60 -0.8569 29 | 2.70 -0.9041 30 | 2.80 -0.9422 31 | 2.90 -0.9710 32 | 3.00 -0.9900 33 | 3.10 -0.9991 34 | 3.20 -0.9983 35 | 3.30 -0.9875 36 | 3.40 -0.9668 37 | 3.50 -0.9365 38 | 3.60 -0.8968 39 | 3.70 -0.8481 40 | 3.80 -0.7910 41 | 3.90 -0.7259 42 | 4.00 -0.6536 43 | 4.10 -0.5748 44 | 4.20 -0.4903 45 | 4.30 -0.4008 46 | 4.40 -0.3073 47 | 4.50 -0.2108 48 | 4.60 -0.1122 49 | 4.70 -0.0124 50 | 4.80 0.0875 51 | 4.90 0.1865 52 | 5.00 0.2837 53 | 5.10 0.3780 54 | 5.20 0.4685 55 | 5.30 0.5544 56 | 5.40 0.6347 57 | 5.50 0.7087 58 | 5.60 0.7756 59 | 5.70 0.8347 60 | 5.80 0.8855 61 | 5.90 0.9275 62 | 6.00 0.9602 63 | 6.10 0.9833 64 | 6.20 0.9965 65 | -------------------------------------------------------------------------------- /chartest/f.d: -------------------------------------------------------------------------------- 1 | Apr 26 209794 2 | Apr 27 214158 3 | Apr 28 220621 4 | Apr 29 227301 5 | Apr 30 233065 6 | May 1 238675 7 | May 2 243579 8 | May 3 247360 9 | May 4 251114 10 | May 5 256952 11 | May 6 263203 12 | May 7 269054 13 | May 8 274706 14 | May 9 279053 15 | May 10 282601 16 | May 11 285737 17 | May 12 291420 18 | May 13 296738 19 | May 14 299539 20 | May 15 307148 21 | May 16 307801 22 | May 17 315039 23 | May 18 318231 24 | May 19 323044 25 | May 20 327755 26 | May 21 332449 27 | May 22 337595 28 | May 23 340891 29 | May 24 345072 30 | May 25 348192 31 | May 26 351834 32 | May 27 356940 33 | May 28 361779 34 | May 29 366487 35 | May 30 370730 36 | May 31 373715 37 | Jun 1 376789 38 | Jun 2 381274 39 | Jun 3 384873 40 | Jun 4 390254 41 | Jun 5 395552 42 | Jun 6 399855 43 | Jun 7 403464 44 | Jun 8 406279 45 | Jun 9 409750 46 | Jun 10 416019 47 | Jun 11 420911 48 | Jun 12 426435 49 | Jun 13 430819 50 | Jun 14 434292 51 | Jun 15 437331 52 | Jun 16 442259 53 | Jun 17 449286 54 | Jun 18 454176 55 | Jun 19 459186 56 | Jun 20 461074 57 | -------------------------------------------------------------------------------- /chartest/sine.d: -------------------------------------------------------------------------------- 1 | # y=sin(x) 2 | 0.00 0.0000 3 | 0.10 0.0998 4 | 0.20 0.1987 5 | 0.30 0.2955 6 | 0.40 0.3894 7 | 0.50 0.4794 8 | 0.60 0.5646 9 | 0.70 0.6442 10 | 0.80 0.7174 11 | 0.90 0.7833 12 | 1.00 0.8415 13 | 1.10 0.8912 14 | 1.20 0.9320 15 | 1.30 0.9636 16 | 1.40 0.9854 17 | 1.50 0.9975 18 | 1.60 0.9996 19 | 1.70 0.9917 20 | 1.80 0.9738 21 | 1.90 0.9463 22 | 2.00 0.9093 23 | 2.10 0.8632 24 | 2.20 0.8085 25 | 2.30 0.7457 26 | 2.40 0.6755 27 | 2.50 0.5985 28 | 2.60 0.5155 29 | 2.70 0.4274 30 | 2.80 0.3350 31 | 2.90 0.2392 32 | 3.00 0.1411 33 | 3.10 0.0416 34 | 3.20 -0.0584 35 | 3.30 -0.1577 36 | 3.40 -0.2555 37 | 3.50 -0.3508 38 | 3.60 -0.4425 39 | 3.70 -0.5298 40 | 3.80 -0.6119 41 | 3.90 -0.6878 42 | 4.00 -0.7568 43 | 4.10 -0.8183 44 | 4.20 -0.8716 45 | 4.30 -0.9162 46 | 4.40 -0.9516 47 | 4.50 -0.9775 48 | 4.60 -0.9937 49 | 4.70 -0.9999 50 | 4.80 -0.9962 51 | 4.90 -0.9825 52 | 5.00 -0.9589 53 | 5.10 -0.9258 54 | 5.20 -0.8835 55 | 5.30 -0.8323 56 | 5.40 -0.7728 57 | 5.50 -0.7055 58 | 5.60 -0.6313 59 | 5.70 -0.5507 60 | 5.80 -0.4646 61 | 5.90 -0.3739 62 | 6.00 -0.2794 63 | 6.10 -0.1822 64 | 6.20 -0.0831 65 | -------------------------------------------------------------------------------- /cl: -------------------------------------------------------------------------------- 1 | alpha 2 | apisheet 3 | arc 4 | arclines 5 | cchue 6 | colorwall 7 | concentric 8 | compchart 9 | confetti 10 | desordres 11 | dots 12 | dotspiral 13 | elections 14 | eclipse 15 | flowers 16 | gcdeck 17 | gchart 18 | grid 19 | hello 20 | images 21 | lego 22 | lines 23 | mondrian 24 | pie 25 | polar 26 | rgb 27 | scim 28 | shapesketch 29 | showfonts 30 | showimage 31 | spiral 32 | sunearth 33 | tile 34 | transform 35 | twrap 36 | play 37 | -------------------------------------------------------------------------------- /colorwall/README.md: -------------------------------------------------------------------------------- 1 | # Colors for a Large Wall, (after the work by Ellsworth Kelly) 2 | 3 | ![colors](colors.png) 4 | -------------------------------------------------------------------------------- /colorwall/colors.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/colorwall/colors.png -------------------------------------------------------------------------------- /colorwall/main.go: -------------------------------------------------------------------------------- 1 | // colorwall: inspired by Ellsworth Kelly's "Colors for a Large Wall, 1951' 2 | package main 3 | 4 | import ( 5 | "image/color" 6 | "os" 7 | 8 | "gioui.org/app" 9 | "gioui.org/unit" 10 | "github.com/ajstarks/giocanvas" 11 | ) 12 | 13 | var ( 14 | bgcolor = color.NRGBA{0xbb, 0xbb, 0xbb, 0xff} 15 | layout = [][]string{ 16 | {"#000000", "#eeeeee", "#735976", "#eeeeee", "#000000", "#af5d23", "#eeeeee", "#366e93"}, // row 1 17 | {"#eeeeee", "#03342f", "#000000", "#eeeeee", "#ccb04d", "#eeeeee", "#a74e4a", "#000000"}, // row 2 18 | {"#000000", "#eeeeee", "#eeeeee", "#391a32", "#eeeeee", "#eeeeee", "#eeeeee", "#af5d23"}, // row 3 19 | {"#8a1f1b", "#eeeeee", "#366e93", "#eeeeee", "#5e825e", "#000000", "#391a32", "#eeeeee"}, // row 4 20 | {"#eeeeee", "#391a32", "#000000", "#eeeeee", "#eeeeee", "#8a1f1b", "#eeeeee", "#122e63"}, // row 5 21 | {"#03342f", "#eeeeee", "#eeeeee", "#366e93", "#eeeeee", "#eeeeee", "#03342f", "#000000"}, // row 6 22 | {"#eeeeee", "#a74e4a", "#5e825e", "#eeeeee", "#000000", "#735976", "#eeeeee", "#eeeeee"}, // row 7 23 | {"#000000", "#eeeeee", "#391a32", "#ccb04d", "#eeeeee", "#000000", "#a74e4a", "#000000"}, // row 8 24 | } 25 | ) 26 | 27 | func colorwall(width, height float32) { 28 | w := new(app.Window) 29 | appsize := app.Size(unit.Dp(width), unit.Dp(height)) 30 | w.Option(app.Title("colorwall: inspired by Ellsworth Kelly's “Colors on a Large Wall”, 1951"), appsize) 31 | 32 | var x, y, left, right, top, bottom, xincr, yincr float32 33 | left, right, bottom, top = 25, 85, 20, 80 34 | nr, nc := 8, 8 35 | 36 | xincr = (right - left) / float32(nr) 37 | yincr = (top - bottom) / float32(nc) 38 | 39 | for { 40 | switch e := w.Event().(type) { 41 | case app.FrameEvent: 42 | canvas := giocanvas.NewCanvas(width, height, app.FrameEvent{}) 43 | canvas.Background(bgcolor) 44 | y = top 45 | for i := 0; i < nr; i++ { 46 | x = left 47 | for j := 0; j < nc; j++ { 48 | canvas.Square(x, y, yincr-0.1, giocanvas.ColorLookup(layout[i][j])) 49 | x += xincr 50 | } 51 | y -= yincr 52 | } 53 | e.Frame(canvas.Context.Ops) 54 | 55 | case app.DestroyEvent: 56 | os.Exit(0) 57 | } 58 | } 59 | } 60 | 61 | func main() { 62 | go colorwall(1000, 1000) 63 | app.Main() 64 | } 65 | -------------------------------------------------------------------------------- /compchart/README.md: -------------------------------------------------------------------------------- 1 | # composite chart 2 | ![comp-chart](compchart.png) 3 | -------------------------------------------------------------------------------- /compchart/compchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/compchart/compchart.png -------------------------------------------------------------------------------- /concentric/README.md: -------------------------------------------------------------------------------- 1 | # concentric circles 2 | ![concentric](concentric.png) 3 | -------------------------------------------------------------------------------- /concentric/concentric.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/concentric/concentric.png -------------------------------------------------------------------------------- /concentric/main.go: -------------------------------------------------------------------------------- 1 | // concentric circles 2 | package main 3 | 4 | import ( 5 | "flag" 6 | "image/color" 7 | "io" 8 | "os" 9 | 10 | "gioui.org/app" 11 | "gioui.org/unit" 12 | gc "github.com/ajstarks/giocanvas" 13 | ) 14 | 15 | func concentric(w *app.Window) error { 16 | for { 17 | e := w.Event() 18 | switch e := e.(type) { 19 | case app.DestroyEvent: 20 | return e.Err 21 | case app.FrameEvent: 22 | canvas := gc.NewCanvas(float32(e.Size.X), float32(e.Size.Y), app.FrameEvent{}) 23 | canvas.Background(gc.ColorLookup("white")) 24 | var r float32 = 50 25 | for g := uint8(0); g < 250; g += 50 { 26 | canvas.Circle(50, 50, r, color.NRGBA{g, g, g, 255}) 27 | r -= 10 28 | } 29 | e.Frame(canvas.Context.Ops) 30 | } 31 | } 32 | } 33 | 34 | func main() { 35 | var cw, ch int 36 | flag.IntVar(&cw, "width", 1000, "canvas width") 37 | flag.IntVar(&ch, "height", 1000, "canvas height") 38 | flag.Parse() 39 | width := float32(cw) 40 | height := float32(ch) 41 | 42 | go func() { 43 | w := &app.Window{} 44 | w.Option(app.Title("concentric"), app.Size(unit.Dp(width), unit.Dp(height))) 45 | if err := concentric(w); err != nil { 46 | io.WriteString(os.Stderr, "Cannot create the window\n") 47 | os.Exit(1) 48 | } 49 | os.Exit(0) 50 | }() 51 | app.Main() 52 | } 53 | -------------------------------------------------------------------------------- /confetti/README.md: -------------------------------------------------------------------------------- 1 | # confetti 2 | ![confetti](confetti.png) 3 | 4 | ``` 5 | Usage: 6 | -height int 7 | canvas height (default 900) 8 | -n int 9 | number of shapes (default 500) 10 | -size int 11 | max size (default 10) 12 | -width int 13 | canvas width (default 1200) 14 | 15 | ``` -------------------------------------------------------------------------------- /confetti/confetti.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/confetti/confetti.png -------------------------------------------------------------------------------- /confetti/main.go: -------------------------------------------------------------------------------- 1 | // confetti -- random shapes 2 | package main 3 | 4 | import ( 5 | "flag" 6 | "image/color" 7 | "io" 8 | "math/rand" 9 | "os" 10 | 11 | "gioui.org/app" 12 | "gioui.org/unit" 13 | "github.com/ajstarks/giocanvas" 14 | ) 15 | 16 | func rn(n int) float32 { 17 | return float32(rand.Intn(n)) 18 | } 19 | 20 | func rn8(n int) uint8 { 21 | return uint8(rand.Intn(n)) 22 | } 23 | 24 | func confetti(w *app.Window, nshapes, maxsize int) error { 25 | for { 26 | e := w.Event() 27 | switch e := e.(type) { 28 | case app.DestroyEvent: 29 | return e.Err 30 | case app.FrameEvent: 31 | canvas := giocanvas.NewCanvas(float32(e.Size.X), float32(e.Size.Y), app.FrameEvent{}) 32 | canvas.CenterRect(50, 50, 100, 100, color.NRGBA{0, 0, 0, 255}) 33 | for i := 0; i < nshapes; i++ { 34 | color := color.NRGBA{rn8(255), rn8(255), rn8(255), rn8(255)} 35 | x, y := rn(100), rn(100) 36 | w, h := rn(maxsize), rn(maxsize) 37 | if i%2 == 0 { 38 | canvas.Ellipse(x, y, w, h, color) 39 | } else { 40 | canvas.CenterRect(x, y, w, h, color) 41 | } 42 | } 43 | e.Frame(canvas.Context.Ops) 44 | } 45 | 46 | } 47 | } 48 | 49 | func main() { 50 | var cw, ch, nshapes, maxsize int 51 | flag.IntVar(&cw, "width", 1000, "canvas width") 52 | flag.IntVar(&ch, "height", 1000, "canvas height") 53 | flag.IntVar(&nshapes, "n", 500, "number of shapes") 54 | flag.IntVar(&maxsize, "size", 10, "max size") 55 | flag.Parse() 56 | 57 | width := float32(cw) 58 | height := float32(ch) 59 | 60 | go func() { 61 | w := &app.Window{} 62 | w.Option(app.Title("confetti"), app.Size(unit.Dp(width), unit.Dp(height))) 63 | if err := confetti(w, nshapes, maxsize); err != nil { 64 | io.WriteString(os.Stderr, "Cannot create the window\n") 65 | os.Exit(1) 66 | } 67 | os.Exit(0) 68 | }() 69 | app.Main() 70 | } 71 | -------------------------------------------------------------------------------- /desordres/ajs.pal: -------------------------------------------------------------------------------- 1 | ajstarks #aa0000 #aaaaaa #000000 #ffffff 2 | autumn-decay #313638 #574729 #975330 #c57938 #ffad3b #ffe596 3 | rainbow #ff0000 #ffa500 #ffff00 #008000 #0000ff #4b0082 #ee82ee 4 | polished-gold #000000 #361c1b #754232 #cd894a #e6b983 #fff8bc #ffffff #2d2433 #4f4254 #b092a7 5 | funk-it-up #e4ffff #e63410 #a23737 #ffec40 #81913b #26f675 #4c714e #40ebda #394e4e #0a0a0a 6 | grayscale #111111 #222222 #333333 #444444 #555555 #666666 #777777 #888888 #999999 #aaaaaa #bbbbbb #cccccc #dddddd #eeeeee 7 | -------------------------------------------------------------------------------- /desordres/default.pal: -------------------------------------------------------------------------------- 1 | kirokaze-gameboy #332c50 #46878f #94e344 #e2f3e4 2 | ice-cream-gb #7c3f58 #eb6b6f #f9a875 #fff6d3 3 | 2-bit-demichrome #211e20 #555568 #a0a08b #e9efec 4 | mist-gb #2d1b00 #1e606e #5ab9a8 #c4f0c2 5 | rustic-gb #2c2137 #764462 #edb4a1 #a96868 6 | 2-bit-grayscale #000000 #676767 #b6b6b6 #ffffff 7 | hollow #0f0f1b #565a75 #c6b7be #fafbf6 8 | ayy4 #00303b #ff7777 #ffce96 #f1f2da 9 | nintendo-gameboy-bgb #081820 #346856 #88c070 #e0f8d0 10 | red-brick #eff9d6 #ba5044 #7a1c4b #1b0326 11 | nostalgia #d0d058 #a0a840 #708028 #405010 12 | spacehaze #f8e3c4 #cc3495 #6b1fb1 #0b0630 13 | moonlight-gb #0f052d #203671 #36868f #5fc75d 14 | links-awakening-sgb #5a3921 #6b8c42 #7bc67b #ffffb5 15 | arq4 #ffffff #6772a9 #3a3277 #000000 16 | blk-aqu4 #002b59 #005f8c #00b9be #9ff4e5 17 | pokemon-sgb #181010 #84739c #f7b58c #ffefff 18 | nintendo-super-gameboy #331e50 #a63725 #d68e49 #f7e7c6 19 | blu-scribbles #051833 #0a4f66 #0f998e #12cc7f 20 | kankei4 #ffffff #f42e1f #2f256b #060608 21 | dark-mode #212121 #454545 #787878 #a8a5a5 22 | pen-n-paper #e4dbba #a4929a #4f3a54 #260d1c 23 | -------------------------------------------------------------------------------- /dots/README.md: -------------------------------------------------------------------------------- 1 | # dots 2 | 3 | Drag the mouse and make dots 4 | 5 | ![dots](dots.png) 6 | 7 | ## command line 8 | 9 | ``` 10 | -bgcolor string 11 | background color (default "black") 12 | -palette string 13 | color palette (space separated list of colors) 14 | (default "#aaaaaaaa #aa0000aa #00aa00aa #0000aaaa #ffd821aa #234ad5aa #ffad5e00 #000000aa") 15 | colors may be spefied as named colors, rgb(r,g,b,[alpha]), #rrggbb[aa], or hsv(hue,sat,value,[alpha]) 16 | -height int 17 | canvas height (default 1000) 18 | -width int 19 | canvas width (default 1000) 20 | -nc int 21 | number of dots (default 1000) 22 | 23 | ``` 24 | 25 | ## interactions 26 | 27 | * up,right arrow: increase dot size 28 | * down,left arrow: decrease dot size 29 | * Q, Esc: quit 30 | 31 | -------------------------------------------------------------------------------- /dots/dots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/dots/dots.png -------------------------------------------------------------------------------- /dotspiral/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "flag" 5 | "os" 6 | 7 | "gioui.org/app" 8 | "gioui.org/unit" 9 | "github.com/ajstarks/giocanvas" 10 | ) 11 | 12 | type config struct { 13 | start, end, r, rincr, dincr, tincr, dotsize float64 14 | dotcolor, bgcolor string 15 | } 16 | 17 | func dotspiral(canvas *giocanvas.Canvas, cx, cy float32, c config) { 18 | r := float32(c.r) 19 | rincr := float32(c.rincr) 20 | tincr := float32(c.tincr) 21 | dincr := float32(c.dincr) 22 | dotsize := float32(c.dotsize) 23 | start := float32(c.start) 24 | end := float32(c.end) 25 | color := giocanvas.ColorLookup(c.dotcolor) 26 | canvas.Background(giocanvas.ColorLookup(c.bgcolor)) 27 | for t := start; t <= end; t += tincr { 28 | px, py := canvas.PolarDegrees(cx, cy, r, t) 29 | canvas.Circle(px, py, dotsize, color) 30 | r += rincr 31 | dotsize += dincr 32 | } 33 | } 34 | 35 | func work(title string, width, height float32, c config) { 36 | w := &app.Window{} 37 | w.Option(app.Title(title), app.Size(unit.Dp(width), unit.Dp(height))) 38 | var cx, cy float32 = 50, 50 39 | for { 40 | e := w.Event() 41 | switch e := e.(type) { 42 | case app.DestroyEvent: 43 | os.Exit(0) 44 | case app.FrameEvent: 45 | canvas := giocanvas.NewCanvas(float32(e.Size.X), float32(e.Size.Y), e) 46 | dotspiral(canvas, cx, cy, c) 47 | e.Frame(canvas.Context.Ops) 48 | } 49 | } 50 | } 51 | 52 | func main() { 53 | var w, h int 54 | var c config 55 | flag.IntVar(&w, "width", 1000, "canvas width") 56 | flag.IntVar(&h, "height", 1000, "canvas height") 57 | flag.Float64Var(&c.start, "start", 180, "start angle") 58 | flag.Float64Var(&c.end, "end", 360, "end angle") 59 | flag.Float64Var(&c.r, "r", 10.0, "radius") 60 | flag.Float64Var(&c.rincr, "rincr", 1.0, "radius increment") 61 | flag.Float64Var(&c.tincr, "tincr", 10.0, "angle increment") 62 | flag.Float64Var(&c.dincr, "dincr", 0.5, "size increment") 63 | flag.Float64Var(&c.dotsize, "size", 0.5, "dotsize") 64 | flag.StringVar(&c.dotcolor, "color", "rgb(128,0,0,128)", "dot color") 65 | flag.StringVar(&c.bgcolor, "bgcolor", "white", "background color") 66 | flag.Parse() 67 | go work("dotspiral", float32(w), float32(h), c) 68 | app.Main() 69 | } 70 | -------------------------------------------------------------------------------- /eclipse/README.md: -------------------------------------------------------------------------------- 1 | # eclipse 2 | ![eclipse](eclipse.png) 3 | -------------------------------------------------------------------------------- /eclipse/eclipse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/eclipse/eclipse.png -------------------------------------------------------------------------------- /eclipse/main.go: -------------------------------------------------------------------------------- 1 | // eclipse illustrates the eclipse 2 | package main 3 | 4 | import ( 5 | "flag" 6 | "image/color" 7 | "io" 8 | "os" 9 | 10 | "gioui.org/app" 11 | "gioui.org/unit" 12 | "github.com/ajstarks/giocanvas" 13 | ) 14 | 15 | func eclipse(w *app.Window) error { 16 | black := color.NRGBA{0, 0, 0, 255} 17 | white := color.NRGBA{255, 255, 255, 255} 18 | for { 19 | e := w.Event() 20 | switch e := e.(type) { 21 | case app.DestroyEvent: 22 | return e.Err 23 | case app.FrameEvent: 24 | canvas := giocanvas.NewCanvas(float32(e.Size.X), float32(e.Size.Y), app.FrameEvent{}) 25 | canvas.CenterRect(50, 50, 100, 100, black) 26 | var r float32 = 5.0 27 | var y float32 = 50.0 28 | var x float32 = 10.0 29 | for x = 10.0; x < 100.0; x += 15 { 30 | canvas.Circle(x, 50, r+0.5, white) 31 | canvas.Circle(x, y, r, black) 32 | y -= 2 33 | } 34 | e.Frame(canvas.Context.Ops) 35 | } 36 | } 37 | } 38 | 39 | func main() { 40 | var cw, ch int 41 | flag.IntVar(&cw, "width", 1000, "canvas width") 42 | flag.IntVar(&ch, "height", 1000, "canvas height") 43 | flag.Parse() 44 | width := float32(cw) 45 | height := float32(ch) 46 | 47 | go func() { 48 | w := &app.Window{} 49 | w.Option(app.Title("eclipse"), app.Size(unit.Dp(width), unit.Dp(height))) 50 | if err := eclipse(w); err != nil { 51 | io.WriteString(os.Stderr, "Cannot create the window\n") 52 | os.Exit(1) 53 | } 54 | os.Exit(0) 55 | }() 56 | app.Main() 57 | } 58 | -------------------------------------------------------------------------------- /elections/1920.d: -------------------------------------------------------------------------------- 1 | # 1920 Cox Harding 2 | AL 5 7 d 2359000 3 | AZ 5 2 r 340000 4 | AR 5 5 d 1756000 5 | CA 5 1 r 3554000 6 | CO 4 3 r 937000 7 | CT 1 10 r 1391000 8 | DE 3 11 r 219000 9 | FL 6 9 d 962000 10 | GA 5 8 d 2926000 11 | ID 3 2 r 433000 12 | IL 3 6 r 6663000 13 | IN 3 7 r 2947000 14 | IA 3 5 r 2400000 15 | KS 4 4 r 1769000 16 | KY 4 7 d 2421000 17 | LA 6 5 d 1813000 18 | ME 0 12 r 771000 19 | MD 4 10 r 1464000 20 | MA 1 11 r 3882000 21 | MI 2 7 r 3723000 22 | MN 2 5 r 2403000 23 | MS 5 6 d 1800000 24 | MO 4 5 r 3404000 25 | MT 2 2 r 543000 26 | NE 3 4 r 1300000 27 | NV 4 1 r 78000 28 | NH 0 11 r 444000 29 | NJ 2 10 r 3198000 30 | NM 5 3 r 363000 31 | NY 1 9 r 10282000 32 | NC 4 9 d 2588000 33 | ND 2 3 r 646000 34 | OH 3 8 r 5799000 35 | OK 5 4 r 2055000 36 | OR 3 1 r 788000 37 | PA 2 9 r 8740000 38 | RI 2 11 r 613000 39 | SC 5 9 d 1685000 40 | SD 2 4 r 640000 41 | TN 4 6 r 2329000 42 | TX 6 4 d 4723000 43 | UT 4 2 r 453000 44 | VT 0 10 r 353000 45 | VA 3 9 d 2347000 46 | WA 2 1 r 1373000 47 | WV 4 8 r 1470000 48 | WI 2 6 r 2679000 49 | WY 3 3 r 197000 50 | -------------------------------------------------------------------------------- /elections/1924.d: -------------------------------------------------------------------------------- 1 | # 1924 Davis Coolidge LaFollette 2 | AL 5 7 d 2501000 3 | AZ 5 2 r 382000 4 | AR 5 5 d 1800000 5 | CA 5 1 r 4541000 6 | CO 4 3 r 1014000 7 | CT 1 10 r 1481000 8 | DE 3 11 r 219000 9 | FL 6 9 d 1160000 10 | GA 5 8 d 2920000 11 | ID 3 2 r 434000 12 | IL 3 6 r 7215000 13 | IN 3 7 r 3086000 14 | IA 3 5 r 2420000 15 | KS 4 4 r 1807000 16 | KY 4 7 r 2531000 17 | LA 6 5 d 1939000 18 | ME 0 12 r 788000 19 | MD 4 10 r 1537000 20 | MA 1 11 r 4102000 21 | MI 2 7 r 4214000 22 | MN 2 5 r 2521000 23 | MS 5 6 d 1886000 24 | MO 4 5 r 3508000 25 | MT 2 2 r 538000 26 | NE 3 4 r 1333000 27 | NV 4 1 r 84000 28 | NH 0 11 r 457000 29 | NJ 2 10 r 3573000 30 | NM 5 3 r 390000 31 | NY 1 9 r 10953000 32 | NC 4 9 r 2830000 33 | ND 2 3 r 642000 34 | OH 3 8 r 6319000 35 | OK 5 4 d 2179000 36 | OR 3 1 r 856000 37 | PA 2 9 r 9383000 38 | RI 2 11 r 669000 39 | SC 5 9 d 1710000 40 | SD 2 4 r 673000 41 | TN 4 6 r 2502000 42 | TX 6 4 d 5210000 43 | UT 4 2 r 481000 44 | VT 0 10 r 355000 45 | VA 3 9 d 2426000 46 | WA 2 1 r 1467000 47 | WV 4 8 r 1577000 48 | WI 2 6 i 2833000 49 | WY 3 3 r 215000 50 | -------------------------------------------------------------------------------- /elections/1928.d: -------------------------------------------------------------------------------- 1 | # 1928 Smith Hoover 2 | AL 5 7 d 2640000 3 | AZ 5 2 r 422000 4 | AR 5 5 d 1847000 5 | CA 5 1 r 5344000 6 | CO 4 3 r 1014000 7 | CT 1 10 r 1577000 8 | DE 3 11 r 233000 9 | FL 6 9 r 1433000 10 | GA 5 8 d 2903000 11 | ID 3 2 r 449000 12 | IL 3 6 r 7576000 13 | IN 3 7 r 3212000 14 | IA 3 5 r 2450000 15 | KS 4 4 r 1850000 16 | KY 4 7 r 2567000 17 | LA 6 5 d 2064000 18 | ME 0 12 r 797000 19 | MD 4 10 r 1610000 20 | MA 1 11 d 4217000 21 | MI 2 7 r 4665000 22 | MN 2 5 r 2592000 23 | MS 5 6 d 1981000 24 | MO 4 5 r 3601000 25 | MT 2 2 r 541000 26 | NE 3 4 r 1371000 27 | NV 4 1 r 89000 28 | NH 0 11 r 468000 29 | NJ 2 10 r 3968000 30 | NM 5 3 r 416000 31 | NY 1 9 r 11599000 32 | NC 4 9 r 3082000 33 | ND 2 3 r 665000 34 | OH 3 8 r 6608000 35 | OK 5 4 r 2344000 36 | OR 3 1 r 936000 37 | PA 2 9 r 9802000 38 | RI 2 11 d 678000 39 | SC 5 9 d 1739000 40 | SD 2 4 r 685000 41 | TN 4 6 r 2624000 42 | TX 6 4 r 5675000 43 | UT 4 2 r 504000 44 | VT 0 10 r 358000 45 | VA 3 9 r 2435000 46 | WA 2 1 r 1551000 47 | WV 4 8 r 1696000 48 | WI 2 6 r 2923000 49 | WY 3 3 r 220000 50 | -------------------------------------------------------------------------------- /elections/1932.d: -------------------------------------------------------------------------------- 1 | # 1932 Roosevelt Hoover 2 | AL 5 7 d 2653000 3 | AZ 5 2 d 426000 4 | AR 5 5 d 1836000 5 | CA 5 1 d 5894000 6 | CO 4 3 d 1066000 7 | CT 1 10 r 1637000 8 | DE 3 11 r 245000 9 | FL 6 9 d 1521000 10 | GA 5 8 d 2935000 11 | ID 3 2 d 459000 12 | IL 3 6 d 7736000 13 | IN 3 7 d 3281000 14 | IA 3 5 d 2489000 15 | KS 4 4 d 1883000 16 | KY 4 7 d 2676000 17 | LA 6 5 d 2155000 18 | ME 0 12 r 815000 19 | MD 4 10 d 1678000 20 | MA 1 11 d 4259000 21 | MI 2 7 d 4780000 22 | MN 2 5 d 2646000 23 | MS 5 6 d 2004000 24 | MO 4 5 d 3746000 25 | MT 2 2 d 540000 26 | NE 3 4 d 1386000 27 | NV 4 1 d 96000 28 | NH 0 11 r 474000 29 | NJ 2 10 d 4120000 30 | NM 5 3 d 441000 31 | NY 1 9 d 13001000 32 | NC 4 9 d 3227000 33 | ND 2 3 d 676000 34 | OH 3 8 d 6717000 35 | OK 5 4 d 2394000 36 | OR 3 1 d 972000 37 | PA 2 9 r 9764000 38 | RI 2 11 d 677000 39 | SC 5 9 d 1748000 40 | SD 2 4 d 692000 41 | TN 4 6 d 2711000 42 | TX 6 4 d 5961000 43 | UT 4 2 d 517000 44 | VT 0 10 r 358000 45 | VA 3 9 d 2452000 46 | WA 2 1 d 1584000 47 | WV 4 8 d 1747000 48 | WI 2 6 d 3021000 49 | WY 3 3 d 230000 50 | -------------------------------------------------------------------------------- /elections/1936.d: -------------------------------------------------------------------------------- 1 | # 1936 Roosevelt Landon 2 | AL 5 7 d 2743000 3 | AZ 5 2 d 443000 4 | AR 5 5 d 1892000 5 | CA 5 1 d 6341000 6 | CO 4 3 d 1090000 7 | CT 1 10 d 1672000 8 | DE 3 11 d 253000 9 | FL 6 9 d 1651000 10 | GA 5 8 d 2978000 11 | ID 3 2 d 495000 12 | IL 3 6 d 7840000 13 | IN 3 7 d 3348000 14 | IA 3 5 d 2509000 15 | KS 4 4 d 1869000 16 | KY 4 7 d 2768000 17 | LA 6 5 d 2246000 18 | ME 0 12 r 840000 19 | MD 4 10 d 1745000 20 | MA 1 11 d 4355000 21 | MI 2 7 d 4889000 22 | MN 2 5 d 2734000 23 | MS 5 6 d 2072000 24 | MO 4 5 d 3801000 25 | MT 2 2 d 554000 26 | NE 3 4 d 1358000 27 | NV 4 1 d 101000 28 | NH 0 11 d 481000 29 | NJ 2 10 d 4084000 30 | NM 5 3 d 489000 31 | NY 1 9 d 13481000 32 | NC 4 9 d 3346000 33 | ND 2 3 d 664000 34 | OH 3 8 d 6801000 35 | OK 5 4 d 2365000 36 | OR 3 1 d 1025000 37 | PA 2 9 d 9767000 38 | RI 2 11 d 686000 39 | SC 5 9 d 1781000 40 | SD 2 4 d 666000 41 | TN 4 6 d 2791000 42 | TX 6 4 d 6192000 43 | UT 4 2 d 527000 44 | VT 0 10 r 357000 45 | VA 3 9 d 2552000 46 | WA 2 1 d 1653000 47 | WV 4 8 d 1808000 48 | WI 2 6 d 3082000 49 | WY 3 3 d 240000 50 | -------------------------------------------------------------------------------- /elections/1940.d: -------------------------------------------------------------------------------- 1 | # 1940 Roosevelt Wdlkie 2 | AL 5 7 d 2845000 3 | AZ 5 2 d 499000 4 | AR 5 5 d 1955000 5 | CA 5 1 d 6950000 6 | CO 4 3 r 1130000 7 | CT 1 10 d 1708000 8 | DE 3 11 d 269000 9 | FL 6 9 d 1915000 10 | GA 5 8 d 3119000 11 | ID 3 2 d 522000 12 | IL 3 6 d 7905000 13 | IN 3 7 r 3433000 14 | IA 3 5 r 2537000 15 | KS 4 4 r 1788000 16 | KY 4 7 d 2859000 17 | LA 6 5 d 2370000 18 | ME 0 12 r 849000 19 | MD 4 10 d 1839000 20 | MA 1 11 d 4318000 21 | MI 2 7 r 5315000 22 | MN 2 5 d 2790000 23 | MS 5 6 d 2176000 24 | MO 4 5 d 3786000 25 | MT 2 2 d 558000 26 | NE 3 4 r 1316000 27 | NV 4 1 d 113000 28 | NH 0 11 d 492000 29 | NJ 2 10 d 4175000 30 | NM 5 3 d 531000 31 | NY 1 9 d 13456000 32 | NC 4 9 d 3574000 33 | ND 2 3 r 640000 34 | OH 3 8 d 6929000 35 | OK 5 4 d 2325000 36 | OR 3 1 d 1086000 37 | PA 2 9 d 9896000 38 | RI 2 11 d 719000 39 | SC 5 9 d 1902000 40 | SD 2 4 r 641000 41 | TN 4 6 d 2935000 42 | TX 6 4 d 6425000 43 | UT 4 2 d 552000 44 | VT 0 10 r 363000 45 | VA 3 9 d 2720000 46 | WA 2 1 d 1740000 47 | WV 4 8 d 1907000 48 | WI 2 6 d 3143000 49 | WY 3 3 d 250000 50 | -------------------------------------------------------------------------------- /elections/1944.d: -------------------------------------------------------------------------------- 1 | # 1944 Roosevelt Dewey 2 | AL 5 7 d 2802000 3 | AZ 5 2 d 610000 4 | AR 5 5 d 1768000 5 | CA 5 1 d 8945000 6 | CO 4 3 r 1137000 7 | CT 1 10 d 1778000 8 | DE 3 11 d 285000 9 | FL 6 9 d 2420000 10 | GA 5 8 d 3176000 11 | ID 3 2 d 529000 12 | IL 3 6 d 7719000 13 | IN 3 7 r 3440000 14 | IA 3 5 r 2301000 15 | KS 4 4 r 1779000 16 | KY 4 7 d 2631000 17 | LA 6 5 d 2508000 18 | ME 0 12 r 801000 19 | MD 4 10 d 2118000 20 | MA 1 11 d 4192000 21 | MI 2 7 d 5467000 22 | MN 2 5 d 2526000 23 | MS 5 6 d 2167000 24 | MO 4 5 d 3560000 25 | MT 2 2 d 469000 26 | NE 3 4 r 1216000 27 | NV 4 1 d 153000 28 | NH 0 11 d 456000 29 | NJ 2 10 d 4158000 30 | NM 5 3 d 527000 31 | NY 1 9 d 12628000 32 | NC 4 9 d 3560000 33 | ND 2 3 r 534000 34 | OH 3 8 r 6918000 35 | OK 5 4 d 2043000 36 | OR 3 1 d 1233000 37 | PA 2 9 d 9214000 38 | RI 2 11 d 795000 39 | SC 5 9 d 1943000 40 | SD 2 4 r 565000 41 | TN 4 6 d 2868000 42 | TX 6 4 d 6876000 43 | UT 4 2 d 605000 44 | VT 0 10 r 314000 45 | VA 3 9 d 3248000 46 | WA 2 1 d 2092000 47 | WV 4 8 d 1706000 48 | WI 2 6 r 2980000 49 | WY 3 3 r 242000 50 | -------------------------------------------------------------------------------- /elections/1948.d: -------------------------------------------------------------------------------- 1 | # 1948 Truman Dewey Thurmond 2 | AL 5 7 i 2969000 3 | AZ 5 2 d 690000 4 | AR 5 5 d 1825000 5 | CA 5 1 d 10064000 6 | CO 4 3 d 1263000 7 | CT 1 10 r 2014000 8 | DE 3 11 r 312000 9 | FL 6 9 d 2578000 10 | GA 5 8 d 3259000 11 | ID 3 2 d 551000 12 | IL 3 6 d 8552000 13 | IN 3 7 r 3877000 14 | IA 3 5 d 2543000 15 | KS 4 4 r 1892000 16 | KY 4 7 d 2817000 17 | LA 6 5 i 2596000 18 | ME 0 12 r 878000 19 | MD 4 10 r 2271000 20 | MA 1 11 d 4674000 21 | MI 2 7 r 6213000 22 | MN 2 5 d 2868000 23 | MS 5 6 i 2076000 24 | MO 4 5 d 3844000 25 | MT 2 2 d 542000 26 | NE 3 4 r 1265000 27 | NV 4 1 d 156000 28 | NH 0 11 r 520000 29 | NJ 2 10 r 4774000 30 | NM 5 3 d 604000 31 | NY 1 9 r 14497000 32 | NC 4 9 d 3837000 33 | ND 2 3 r 580000 34 | OH 3 8 d 7876000 35 | OK 5 4 d 2089000 36 | OR 3 1 r 1405000 37 | PA 2 9 r 10287000 38 | RI 2 11 d 787000 39 | SC 5 9 i 1996000 40 | SD 2 4 r 612000 41 | TN 4 6 d 3216000 42 | TX 6 4 d 7626000 43 | UT 4 2 d 653000 44 | VT 0 10 r 359000 45 | VA 3 9 d 3207000 46 | WA 2 1 d 2255000 47 | WV 4 8 d 1899000 48 | WI 2 6 d 3314000 49 | WY 3 3 d 269000 50 | -------------------------------------------------------------------------------- /elections/1952.d: -------------------------------------------------------------------------------- 1 | # 1952 Stevenson Eisenhower 2 | AL 5 7 d 3068000 3 | AZ 5 2 r 842000 4 | AR 5 5 d 1838000 5 | CA 5 1 r 11635000 6 | CO 4 3 r 1365000 7 | CT 1 10 r 2081000 8 | DE 3 11 r 341000 9 | FL 6 9 r 3157000 10 | GA 5 8 d 3584000 11 | ID 3 2 r 587000 12 | IL 3 6 r 8956000 13 | IN 3 7 r 4148000 14 | IA 3 5 r 2626000 15 | KS 4 4 r 1977000 16 | KY 4 7 d 2920000 17 | LA 6 5 d 2842000 18 | ME 0 12 r 915000 19 | MD 4 10 r 2500000 20 | MA 1 11 r 4650000 21 | MI 2 7 r 6650000 22 | MN 2 5 r 3030000 23 | MS 5 6 d 2152000 24 | MO 4 5 r 3972000 25 | MT 2 2 r 602000 26 | NE 3 4 r 1311000 27 | NV 4 1 r 181000 28 | NH 0 11 r 535000 29 | NJ 2 10 r 5125000 30 | NM 5 3 r 735000 31 | NY 1 9 r 15192000 32 | NC 4 9 d 4109000 33 | ND 2 3 r 608000 34 | OH 3 8 r 8275000 35 | OK 5 4 r 2219000 36 | OR 3 1 r 1582000 37 | PA 2 9 r 10503000 38 | RI 2 11 r 802000 39 | SC 5 9 d 2178000 40 | SD 2 4 r 651000 41 | TN 4 6 r 3352000 42 | TX 6 4 r 8314000 43 | UT 4 2 r 724000 44 | VT 0 10 r 375000 45 | VA 3 9 r 3504000 46 | WA 2 1 r 2448000 47 | WV 4 8 d 1957000 48 | WI 2 6 r 3469000 49 | WY 3 3 r 293000 50 | -------------------------------------------------------------------------------- /elections/1956.d: -------------------------------------------------------------------------------- 1 | # 1956 Stevenson Eisenhower 2 | AL 5 7 d 3071000 3 | AZ 5 2 r 1053000 4 | AR 5 5 d 1704000 5 | CA 5 1 r 13713000 6 | CO 4 3 r 1625000 7 | CT 1 10 r 2316000 8 | DE 3 11 r 408000 9 | FL 6 9 r 4047000 10 | GA 5 8 d 3701000 11 | ID 3 2 r 628000 12 | IL 3 6 r 9530000 13 | IN 3 7 r 4458000 14 | IA 3 5 r 2703000 15 | KS 4 4 r 2119000 16 | KY 4 7 r 2898000 17 | LA 6 5 r 3032000 18 | ME 0 12 r 938000 19 | MD 4 10 r 2811000 20 | MA 1 11 r 4891000 21 | MI 2 7 r 7467000 22 | MN 2 5 r 3240000 23 | MS 5 6 d 2086000 24 | MO 4 5 d 4163000 25 | MT 2 2 r 656000 26 | NE 3 4 r 1397000 27 | NV 4 1 r 250000 28 | NH 0 11 r 566000 29 | NJ 2 10 r 5615000 30 | NM 5 3 r 806000 31 | NY 1 9 r 16112000 32 | NC 4 9 d 4309000 33 | ND 2 3 r 613000 34 | OH 3 8 r 9207000 35 | OK 5 4 r 2273000 36 | OR 3 1 r 1698000 37 | PA 2 9 r 10972000 38 | RI 2 11 r 840000 39 | SC 5 9 d 2229000 40 | SD 2 4 r 670000 41 | TN 4 6 r 3415000 42 | TX 6 4 r 8830000 43 | UT 4 2 r 809000 44 | VT 0 10 r 377000 45 | VA 3 9 r 3722000 46 | WA 2 1 r 2668000 47 | WV 4 8 r 1857000 48 | WI 2 6 r 3742000 49 | WY 3 3 r 312000 50 | -------------------------------------------------------------------------------- /elections/1960.d: -------------------------------------------------------------------------------- 1 | # 1960 Kennedy Nixon 2 | AL 5 7 d 3267000 3 | AK 1 0 r 226000 4 | AZ 5 2 r 1302000 5 | AR 5 5 d 1786000 6 | CA 5 1 r 15717000 7 | CO 4 3 r 1754000 8 | CT 1 10 d 2535000 9 | DE 3 11 d 446000 10 | DC 3 10 d 764000 11 | FL 6 9 r 4952000 12 | GA 5 8 d 3943000 13 | HI 6 0 r 633000 14 | ID 3 2 r 667000 15 | IL 3 6 d 10081000 16 | IN 3 7 r 4662000 17 | IA 3 5 r 2758000 18 | KS 4 4 r 2179000 19 | KY 4 7 r 3038000 20 | LA 6 5 d 3257000 21 | ME 0 12 r 969000 22 | MD 4 10 r 3101000 23 | MA 1 11 d 5149000 24 | MI 2 7 d 7823000 25 | MN 2 5 d 3414000 26 | MS 5 6 d 2178000 27 | MO 4 5 d 4320000 28 | MT 2 2 r 675000 29 | NE 3 4 r 1411000 30 | NV 4 1 d 285000 31 | NH 0 11 r 607000 32 | NJ 2 10 d 6067000 33 | NM 5 3 d 951000 34 | NY 1 9 d 16782000 35 | NC 4 9 d 4556000 36 | ND 2 3 r 632000 37 | OH 3 8 r 9706000 38 | OK 5 4 r 2328000 39 | OR 3 1 r 1769000 40 | PA 2 9 d 11319000 41 | RI 2 11 d 859000 42 | SC 5 9 d 2383000 43 | SD 2 4 r 681000 44 | TN 4 6 r 3567000 45 | TX 6 4 d 9580000 46 | UT 4 2 r 891000 47 | VT 0 10 r 390000 48 | VA 3 9 r 3967000 49 | WA 2 1 r 2853000 50 | WV 4 8 d 1860000 51 | WI 2 6 r 3952000 52 | WY 3 3 r 330000 53 | -------------------------------------------------------------------------------- /elections/1964.d: -------------------------------------------------------------------------------- 1 | # 1964 Johnson Goldwater 2 | AL 5 7 r 3395000 3 | AK 1 0 d 263000 4 | AZ 5 2 r 1556000 5 | AR 5 5 d 1897000 6 | CA 5 1 d 18151000 7 | CO 4 3 d 1970000 8 | CT 1 10 d 2798000 9 | DE 3 11 d 497000 10 | DC 3 10 d 798000 11 | FL 6 9 d 5781000 12 | GA 5 8 r 4258000 13 | HI 6 0 d 700000 14 | ID 3 2 d 680000 15 | IL 3 6 d 10580000 16 | IN 3 7 d 4856000 17 | IA 3 5 d 2746000 18 | KS 4 4 d 2209000 19 | KY 4 7 d 3129000 20 | LA 6 5 r 3446000 21 | ME 0 12 d 993000 22 | MD 4 10 d 3492000 23 | MA 1 11 d 5448000 24 | MI 2 7 d 8187000 25 | MN 2 5 d 3558000 26 | MS 5 6 r 2241000 27 | MO 4 5 d 4442000 28 | MT 2 2 d 706000 29 | NE 3 4 d 1482000 30 | NV 4 1 d 426000 31 | NH 0 11 d 663000 32 | NJ 2 10 d 6660000 33 | NM 5 3 d 1006000 34 | NY 1 9 d 17589000 35 | NC 4 9 d 4802000 36 | ND 2 3 d 649000 37 | OH 3 8 d 10080000 38 | OK 5 4 d 2446000 39 | OR 3 1 d 1888000 40 | PA 2 9 d 11519000 41 | RI 2 11 d 885000 42 | SC 5 9 r 2475000 43 | SD 2 4 d 701000 44 | TN 4 6 d 3771000 45 | TX 6 4 d 10270000 46 | UT 4 2 d 978000 47 | VT 0 10 d 399000 48 | VA 3 9 d 4357000 49 | WA 2 1 d 2961000 50 | WV 4 8 d 1797000 51 | WI 2 6 d 4165000 52 | WY 3 3 d 339000 53 | -------------------------------------------------------------------------------- /elections/1968.d: -------------------------------------------------------------------------------- 1 | # 1968 Humphrey Nixon Wallace 2 | AL 5 7 i 3446000 3 | AK 1 0 r 285000 4 | AZ 5 2 r 1682000 5 | AR 5 5 i 1902000 6 | CA 5 1 r 19394000 7 | CO 4 3 r 2120000 8 | CT 1 10 d 2964000 9 | DE 3 11 r 534000 10 | DC 3 10 d 778000 11 | FL 6 9 r 6433000 12 | GA 5 8 i 4482000 13 | HI 6 0 d 734000 14 | ID 3 2 r 695000 15 | IL 3 6 r 10995000 16 | IN 3 7 r 5093000 17 | IA 3 5 r 2803000 18 | KS 4 4 r 2216000 19 | KY 4 7 r 3195000 20 | LA 6 5 i 3603000 21 | ME 0 12 d 994000 22 | MD 4 10 d 3815000 23 | MA 1 11 d 5618000 24 | MI 2 7 d 8696000 25 | MN 2 5 d 3703000 26 | MS 5 6 i 2219000 27 | MO 4 5 r 4568000 28 | MT 2 2 r 700000 29 | NE 3 4 r 1467000 30 | NV 4 1 r 464000 31 | NH 0 11 r 709000 32 | NJ 2 10 r 7005000 33 | NM 5 3 r 994000 34 | NY 1 9 d 18051000 35 | NC 4 9 r 5004000 36 | ND 2 3 r 621000 37 | OH 3 8 r 10516000 38 | OK 5 4 r 2503000 39 | OR 3 1 r 2004000 40 | PA 2 9 d 11741000 41 | RI 2 11 d 922000 42 | SC 5 9 r 2559000 43 | SD 2 4 r 669000 44 | TN 4 6 r 3878000 45 | TX 6 4 d 10819000 46 | UT 4 2 r 1029000 47 | VT 0 10 r 430000 48 | VA 3 9 r 4558000 49 | WA 2 1 d 3270000 50 | WV 4 8 d 1763000 51 | WI 2 6 r 4345000 52 | WY 3 3 r 324000 53 | -------------------------------------------------------------------------------- /elections/1972.d: -------------------------------------------------------------------------------- 1 | # 1972 McGovern Nixon 2 | AL 5 7 r 3539400 3 | AK 1 0 r 324464 4 | AZ 5 2 r 2008291 5 | AR 5 5 r 2018638 6 | CA 5 1 r 20585469 7 | CO 4 3 r 2404619 8 | CT 1 10 r 3068699 9 | DE 3 11 r 572913 10 | DC 3 10 d 742241 11 | FL 6 9 r 7511463 12 | GA 5 8 r 4809490 13 | HI 6 0 r 828331 14 | ID 3 2 r 763237 15 | IL 3 6 r 11251948 16 | IN 3 7 r 5302435 17 | IA 3 5 r 2860287 18 | KS 4 4 r 2256375 19 | KY 4 7 r 3335728 20 | LA 6 5 r 3761646 21 | ME 0 12 r 1034292 22 | MD 4 10 r 4073499 23 | MA 1 11 d 5760302 24 | MI 2 7 r 9028944 25 | MN 2 5 r 3869747 26 | MS 5 6 r 2307117 27 | MO 4 5 r 4758780 28 | MT 2 2 r 718732 29 | NE 3 4 r 1519013 30 | NV 4 1 r 546789 31 | NH 0 11 r 781107 32 | NJ 2 10 r 7335042 33 | NM 5 3 r 1078697 34 | NY 1 9 r 18339400 35 | NC 4 9 r 5301150 36 | ND 2 3 r 631119 37 | OH 3 8 r 10746993 38 | OK 5 4 r 2658646 39 | OR 3 1 r 2197297 40 | PA 2 9 r 11908233 41 | RI 2 11 r 974790 42 | SC 5 9 r 2719197 43 | SD 2 4 r 677234 44 | TN 4 6 r 4094611 45 | TX 6 4 r 11759148 46 | UT 4 2 r 1135449 47 | VT 0 10 r 463143 48 | VA 3 9 r 4824472 49 | WA 2 1 r 3447885 50 | WV 4 8 r 1797648 51 | WI 2 6 r 4502412 52 | WY 3 3 r 347345 53 | -------------------------------------------------------------------------------- /elections/1976.d: -------------------------------------------------------------------------------- 1 | # 1976 Carter Ford 2 | AL 5 7 d 3735139 3 | AK 1 0 r 400969 4 | AZ 5 2 r 2346157 5 | AR 5 5 d 2170161 6 | CA 5 1 r 21935909 7 | CO 4 3 r 2632306 8 | CT 1 10 r 3083335 9 | DE 3 11 d 590166 10 | DC 3 10 r 692295 11 | FL 6 9 d 8667379 12 | GA 5 8 d 5132812 13 | HI 6 0 d 904191 14 | ID 3 2 r 856983 15 | IL 3 6 r 11342853 16 | IN 3 7 r 5389088 17 | IA 3 5 r 2903082 18 | KS 4 4 r 2301001 19 | KY 4 7 d 3529257 20 | LA 6 5 d 3950605 21 | ME 0 12 r 1088412 22 | MD 4 10 d 4150539 23 | MA 1 11 d 5743672 24 | MI 2 7 d 9129205 25 | MN 2 5 d 3964680 26 | MS 5 6 d 2429756 27 | MO 4 5 d 4839029 28 | MT 2 2 r 757317 29 | NE 3 4 r 1550911 30 | NV 4 1 r 646975 31 | NH 0 11 r 845248 32 | NJ 2 10 r 7339745 33 | NM 5 3 r 1189295 34 | NY 1 9 d 17940541 35 | NC 4 9 d 5607964 36 | ND 2 3 r 645797 37 | OH 3 8 d 10752662 38 | OK 5 4 r 2826815 39 | OR 3 1 r 2378262 40 | PA 2 9 d 11897378 41 | RI 2 11 d 946089 42 | SC 5 9 d 2943657 43 | SD 2 4 r 686390 44 | TN 4 6 d 4346928 45 | TX 6 4 d 12904089 46 | UT 4 2 r 1274928 47 | VT 0 10 r 484928 48 | VA 3 9 r 5121863 49 | WA 2 1 r 3693610 50 | WV 4 8 d 1879503 51 | WI 2 6 d 4595904 52 | WY 3 3 r 396952 53 | -------------------------------------------------------------------------------- /elections/1980.d: -------------------------------------------------------------------------------- 1 | # 1980 Carter Reagan 2 | AL 5 7 r 3893888 3 | AK 1 0 r 401851 4 | AZ 5 2 r 2718215 5 | AR 5 5 r 2286435 6 | CA 5 1 r 23667902 7 | CO 4 3 r 2889964 8 | CT 1 10 r 3107576 9 | DE 3 11 r 594338 10 | DC 3 10 r 638333 11 | FL 6 9 r 9746324 12 | GA 5 8 d 5463105 13 | HI 6 0 d 964691 14 | ID 3 2 r 943935 15 | IL 3 6 r 11426518 16 | IN 3 7 r 5490224 17 | IA 3 5 r 2913808 18 | KS 4 4 r 2363679 19 | KY 4 7 r 3660777 20 | LA 6 5 r 4205900 21 | ME 0 12 r 1124660 22 | MD 4 10 d 4216975 23 | MA 1 11 r 5737037 24 | MI 2 7 r 9262078 25 | MN 2 5 d 4075970 26 | MS 5 6 r 2520638 27 | MO 4 5 r 4916686 28 | MT 2 2 r 786690 29 | NE 3 4 r 1569825 30 | NV 4 1 r 800493 31 | NH 0 11 r 920610 32 | NJ 2 10 r 7364823 33 | NM 5 3 r 1302894 34 | NY 1 9 r 17558072 35 | NC 4 9 r 5881766 36 | ND 2 3 r 652717 37 | OH 3 8 r 10797630 38 | OK 5 4 r 3025290 39 | OR 3 1 r 2633105 40 | PA 2 9 r 11863895 41 | RI 2 11 d 947154 42 | SC 5 9 r 3121820 43 | SD 2 4 r 690768 44 | TN 4 6 r 4591120 45 | TX 6 4 r 14229191 46 | UT 4 2 r 1461037 47 | VT 0 10 r 511456 48 | VA 3 9 r 5346818 49 | WA 2 1 r 4132156 50 | WV 4 8 d 1949644 51 | WI 2 6 r 4705767 52 | WY 3 3 r 469557 53 | -------------------------------------------------------------------------------- /elections/1984.d: -------------------------------------------------------------------------------- 1 | # 1984 Mondale Reagan 2 | AL 5 7 r 3951820 3 | AK 1 0 r 513702 4 | AZ 5 2 r 3067135 5 | AR 5 5 r 2319768 6 | CA 5 1 r 25844393 7 | CO 4 3 r 3169992 8 | CT 1 10 r 3180014 9 | DE 3 11 r 611565 10 | DC 3 10 d 633382 11 | FL 6 9 r 11039925 12 | GA 5 8 r 5834954 13 | HI 6 0 r 1027922 14 | ID 3 2 r 990839 15 | IL 3 6 r 11412132 16 | IN 3 7 r 5458322 17 | IA 3 5 r 2858618 18 | KS 4 4 r 2424086 19 | KY 4 7 r 3695453 20 | LA 6 5 r 4400477 21 | ME 0 12 r 1155635 22 | MD 4 10 r 4365243 23 | MA 1 11 r 5840773 24 | MI 2 7 r 9049452 25 | MN 2 5 d 4157706 26 | MS 5 6 r 2578051 27 | MO 4 5 r 4975278 28 | MT 2 2 r 820905 29 | NE 3 4 r 1588639 30 | NV 4 1 r 924922 31 | NH 0 11 r 976864 32 | NJ 2 10 r 7515473 33 | NM 5 3 r 1416717 34 | NY 1 9 r 17745684 35 | NC 4 9 r 6164006 36 | ND 2 3 r 680497 37 | OH 3 8 r 10737746 38 | OK 5 4 r 3285533 39 | OR 3 1 r 2666588 40 | PA 2 9 r 11815172 41 | RI 2 11 r 961894 42 | SC 5 9 r 3271868 43 | SD 2 4 r 697249 44 | TN 4 6 r 4686737 45 | TX 6 4 r 16007086 46 | UT 4 2 r 1622342 47 | VT 0 10 r 526660 48 | VA 3 9 r 5643870 49 | WA 2 1 r 4343656 50 | WV 4 8 r 1927697 51 | WI 2 6 r 4735563 52 | WY 3 3 r 504896 53 | -------------------------------------------------------------------------------- /elections/1988.d: -------------------------------------------------------------------------------- 1 | # 1988 Dukakis Bush 2 | AL 5 7 r 4023844 3 | AK 1 0 r 541983 4 | AZ 5 2 r 3535183 5 | AR 5 5 r 2342656 6 | CA 5 1 r 28464249 7 | CO 4 3 r 3262281 8 | CT 1 10 r 3271953 9 | DE 3 11 r 647622 10 | DC 3 10 d 630432 11 | FL 6 9 r 12306395 12 | GA 5 8 r 6316142 13 | HI 6 0 d 1079828 14 | ID 3 2 r 985664 15 | IL 3 6 r 11390183 16 | IN 3 7 r 5491735 17 | IA 3 5 d 2768388 18 | KS 4 4 r 2461996 19 | KY 4 7 r 3679999 20 | LA 6 5 r 4288863 21 | ME 0 12 r 1203840 22 | MD 4 10 r 4657904 23 | MA 1 11 d 5979982 24 | MI 2 7 r 9217998 25 | MN 2 5 d 4296166 26 | MS 5 6 r 2580352 27 | MO 4 5 r 5081736 28 | MT 2 2 r 800202 29 | NE 3 4 r 1571477 30 | NV 4 1 r 1075022 31 | NH 0 11 r 1082577 32 | NJ 2 10 r 7712333 33 | NM 5 3 r 1490337 34 | NY 1 9 d 17941309 35 | NC 4 9 r 6480594 36 | ND 2 3 r 655331 37 | OH 3 8 r 10798552 38 | OK 5 4 r 3167057 39 | OR 3 1 d 2741297 40 | PA 2 9 r 11845752 41 | RI 2 11 d 996408 42 | SC 5 9 r 3412096 43 | SD 2 4 r 698165 44 | TN 4 6 r 4822437 45 | TX 6 4 r 16667022 46 | UT 4 2 r 1689372 47 | VT 0 10 r 549763 48 | VA 3 9 r 6036909 49 | WA 2 1 d 4639893 50 | WV 4 8 d 1830215 51 | WI 2 6 d 4822388 52 | WY 3 3 r 465101 53 | -------------------------------------------------------------------------------- /elections/1992.d: -------------------------------------------------------------------------------- 1 | # 1992 Clinton Bush 2 | AL 5 7 r 4131068 3 | AK 1 0 r 587324 4 | AZ 5 2 r 3835485 5 | AR 5 5 d 2395446 6 | CA 5 1 d 30909406 7 | CO 4 3 d 3463145 8 | CT 1 10 d 3279272 9 | DE 3 11 d 689726 10 | DC 3 10 d 585813 11 | FL 6 9 r 13510073 12 | GA 5 8 d 6764524 13 | HI 6 0 d 1153020 14 | ID 3 2 r 1066203 15 | IL 3 6 d 11610447 16 | IN 3 7 r 5652211 17 | IA 3 5 d 2807782 18 | KS 4 4 r 2517791 19 | KY 4 7 d 3752639 20 | LA 6 5 d 4273036 21 | ME 0 12 d 1237103 22 | MD 4 10 d 4913625 23 | MA 1 11 d 5999148 24 | MI 2 7 d 9423247 25 | MN 2 5 d 4473959 26 | MS 5 6 r 2612726 27 | MO 4 5 d 5192748 28 | MT 2 2 d 823080 29 | NE 3 4 r 1603940 30 | NV 4 1 d 1331274 31 | NH 0 11 d 1113919 32 | NJ 2 10 d 7812654 33 | NM 5 3 d 1580966 34 | NY 1 9 d 18094825 35 | NC 4 9 r 6838230 36 | ND 2 3 r 635340 37 | OH 3 8 d 11004556 38 | OK 5 4 r 3206168 39 | OR 3 1 d 2974652 40 | PA 2 9 d 11989828 41 | RI 2 11 d 1002406 42 | SC 5 9 r 3595400 43 | SD 2 4 r 709462 44 | TN 4 6 d 5020680 45 | TX 6 4 r 17666863 46 | UT 4 2 r 1811373 47 | VT 0 10 d 571340 48 | VA 3 9 r 6389390 49 | WA 2 1 d 5146044 50 | WV 4 8 d 807171 51 | WI 2 6 d 4996925 52 | WY 3 3 r 464079 53 | -------------------------------------------------------------------------------- /elections/1996.d: -------------------------------------------------------------------------------- 1 | # 1996 Clinton Dole 2 | AL 5 7 r 4273084 3 | AK 1 0 r 607007 4 | AZ 5 2 d 4428068 5 | AR 5 5 d 2509793 6 | CA 5 1 d 31878234 7 | CO 4 3 r 3822676 8 | CT 1 10 d 3274238 9 | DE 3 11 d 724842 10 | DC 3 10 d 543213 11 | FL 6 9 d 14399985 12 | GA 5 8 r 7353225 13 | HI 6 0 d 1183723 14 | ID 3 2 r 1189251 15 | IL 3 6 d 11846544 16 | IN 3 7 r 5840528 17 | IA 3 5 d 2851792 18 | KS 4 4 r 2572150 19 | KY 4 7 d 3883723 20 | LA 6 5 d 4350579 21 | ME 0 12 d 1243316 22 | MD 4 10 d 5071604 23 | MA 1 11 d 6092352 24 | MI 2 7 d 9594350 25 | MN 2 5 d 4657758 26 | MS 5 6 r 2716115 27 | MO 4 5 d 5358692 28 | MT 2 2 r 879372 29 | NE 3 4 r 1652093 30 | NV 4 1 d 1603163 31 | NH 0 11 d 1162481 32 | NJ 2 10 d 7987933 33 | NM 5 3 d 1713407 34 | NY 1 9 d 18184774 35 | NC 4 9 r 7322870 36 | ND 2 3 r 643539 37 | OH 3 8 d 11172782 38 | OK 5 4 r 3300902 39 | OR 3 1 d 3203735 40 | PA 2 9 d 12056112 41 | RI 2 11 d 990225 42 | SC 5 9 r 3698746 43 | SD 2 4 r 732405 44 | TN 4 6 d 5319654 45 | TX 6 4 r 19128261 46 | UT 4 2 r 2000494 47 | VT 0 10 d 588654 48 | VA 3 9 r 6675451 49 | WA 2 1 d 5532939 50 | WV 4 8 d 1825754 51 | WI 2 6 d 5159795 52 | WY 3 3 r 481400 53 | -------------------------------------------------------------------------------- /elections/2000.d: -------------------------------------------------------------------------------- 1 | # 2000 Gore Bush 2 | AL 5 7 r 4452173 3 | AK 1 0 r 627963 4 | AZ 5 2 r 5160586 5 | AR 5 5 r 2678588 6 | CA 5 1 d 33987977 7 | CO 4 3 r 4326921 8 | CT 1 10 d 3411777 9 | DE 3 11 d 786373 10 | DC 3 10 d 572046 11 | FL 6 9 r 16047515 12 | GA 5 8 r 8227303 13 | HI 6 0 d 1213519 14 | ID 3 2 r 1299430 15 | IL 3 6 d 12434161 16 | IN 3 7 r 6091866 17 | IA 3 5 d 2929067 18 | KS 4 4 r 2693681 19 | KY 4 7 r 4049021 20 | LA 6 5 r 4471885 21 | ME 0 12 d 1277072 22 | MD 4 10 d 5311034 23 | MA 1 11 d 6361104 24 | MI 2 7 d 9952450 25 | MN 2 5 d 4933692 26 | MS 5 6 r 2848353 27 | MO 4 5 r 5607285 28 | MT 2 2 r 903773 29 | NE 3 4 r 1713820 30 | NV 4 1 r 2018741 31 | NH 0 11 r 1239882 32 | NJ 2 10 d 8430621 33 | NM 5 3 d 1821204 34 | NY 1 9 d 19001780 35 | NC 4 9 r 8081614 36 | ND 2 3 r 642023 37 | OH 3 8 r 11363543 38 | OK 5 4 r 3454365 39 | OR 3 1 d 3429708 40 | PA 2 9 d 12284173 41 | RI 2 11 d 1050268 42 | SC 5 9 r 4024223 43 | SD 2 4 r 755844 44 | TN 4 6 r 5703719 45 | TX 6 4 r 20944499 46 | UT 4 2 r 2244502 47 | VT 0 10 d 609618 48 | VA 3 9 r 7105817 49 | WA 2 1 d 5910512 50 | WV 4 8 r 1807021 51 | WI 2 6 d 5373999 52 | WY 3 3 r 494300 53 | -------------------------------------------------------------------------------- /elections/2004.d: -------------------------------------------------------------------------------- 1 | # 2004 Kerry Bush 2 | AL 5 7 r 4530729 3 | AK 1 0 r 659286 4 | AZ 5 2 r 5652404 5 | AR 5 5 r 2749686 6 | CA 5 1 d 35574576 7 | CO 4 3 r 4575013 8 | CT 1 10 d 3496094 9 | DE 3 11 d 830803 10 | DC 3 10 d 567754 11 | FL 6 9 r 17415318 12 | GA 5 8 r 8769252 13 | HI 6 0 d 1273569 14 | ID 3 2 r 1391802 15 | IL 3 6 d 12589773 16 | IN 3 7 r 6233007 17 | IA 3 5 r 2953635 18 | KS 4 4 r 2734373 19 | KY 4 7 r 4146101 20 | LA 6 5 r 4552238 21 | ME 0 12 d 1313688 22 | MD 4 10 d 5546935 23 | MA 1 11 d 6412281 24 | MI 2 7 d 10055315 25 | MN 2 5 d 5087713 26 | MS 5 6 r 2889010 27 | MO 4 5 r 5747741 28 | MT 2 2 r 930009 29 | NE 3 4 r 1749370 30 | NV 4 1 r 2346222 31 | NH 0 11 d 1290121 32 | NJ 2 10 d 8634561 33 | NM 5 3 r 1903808 34 | NY 1 9 d 19171567 35 | NC 4 9 r 8553152 36 | ND 2 3 r 644705 37 | OH 3 8 r 11452251 38 | OK 5 4 r 3525233 39 | OR 3 1 d 3569463 40 | PA 2 9 d 12410722 41 | RI 2 11 d 1074579 42 | SC 5 9 r 4210921 43 | SD 2 4 r 770396 44 | TN 4 6 r 5910809 45 | TX 6 4 r 22394023 46 | UT 4 2 r 2401580 47 | VT 0 10 d 619920 48 | VA 3 9 r 7475575 49 | WA 2 1 d 6178645 50 | WV 4 8 r 1816438 51 | WI 2 6 d 5514026 52 | WY 3 3 r 509106 53 | -------------------------------------------------------------------------------- /elections/2008.d: -------------------------------------------------------------------------------- 1 | # 2008 Obama McCain 2 | AL 5 7 r 4718206 3 | AK 1 0 r 687455 4 | AZ 5 2 r 6280362 5 | AR 5 5 r 2874554 6 | CA 5 1 d 36604337 7 | CO 4 3 d 4889730 8 | CT 1 10 d 3545579 9 | DE 3 11 d 883874 10 | DC 3 10 d 580236 11 | FL 6 9 d 18527305 12 | GA 5 8 r 9504843 13 | HI 6 0 d 1332213 14 | ID 3 2 r 1534320 15 | IL 3 6 d 12747038 16 | IN 3 7 d 6424806 17 | IA 3 5 d 3016734 18 | KS 4 4 r 2808076 19 | KY 4 7 r 4289878 20 | LA 6 5 r 4435586 21 | ME 0 12 d 1330509 22 | MD 4 10 d 5684965 23 | MA 1 11 d 6468967 24 | MI 2 7 d 9946889 25 | MN 2 5 d 5247018 26 | MS 5 6 r 2947806 27 | MO 4 5 r 5923916 28 | MT 2 2 r 976415 29 | NE 3 4 r 1796378 30 | NV 4 1 d 2653630 31 | NH 0 11 d 1315906 32 | NJ 2 10 d 8711090 33 | NM 5 3 d 2010662 34 | NY 1 9 d 19212436 35 | NC 4 9 d 9309449 36 | ND 2 3 r 657569 37 | OH 3 8 d 11515391 38 | OK 5 4 r 3668976 39 | OR 3 1 d 3768748 40 | PA 2 9 d 12612285 41 | RI 2 11 d 1055003 42 | SC 5 9 r 4528996 43 | SD 2 4 r 799124 44 | TN 4 6 r 6247411 45 | TX 6 4 r 24309039 46 | UT 4 2 r 2663029 47 | VT 0 10 d 624151 48 | VA 3 9 d 7833496 49 | WA 2 1 d 6562231 50 | WV 4 8 r 1840310 51 | WI 2 6 d 5640996 52 | WY 3 3 r 546043 53 | -------------------------------------------------------------------------------- /elections/2012.d: -------------------------------------------------------------------------------- 1 | # 2012 Obama Romney 2 | AL 5 7 r 4815588 3 | AK 1 0 r 730443 4 | AZ 5 2 d 6554978 5 | AR 5 5 r 2952164 6 | CA 5 1 d 37948800 7 | CO 4 3 d 5192647 8 | CT 1 10 d 3594547 9 | DE 3 11 d 915179 10 | DC 3 10 d 634924 11 | FL 6 9 d 19297822 12 | GA 5 8 r 9901430 13 | HI 6 0 d 1394804 14 | ID 3 2 r 1595324 15 | IL 3 6 d 12882510 16 | IN 3 7 r 6537703 17 | IA 3 5 r 3076190 18 | KS 4 4 r 2885257 19 | KY 4 7 r 4386346 20 | LA 6 5 r 4600972 21 | ME 0 12 d 1327729 22 | MD 4 10 d 5886992 23 | MA 1 11 d 6663005 24 | MI 2 7 d 9897145 25 | MN 2 5 d 5376643 26 | MS 5 6 r 2983816 27 | MO 4 5 r 6024367 28 | MT 2 2 r 1003783 29 | NE 3 4 r 1853303 30 | NV 4 1 d 2743996 31 | NH 0 11 d 1324232 32 | NJ 2 10 d 8844942 33 | NM 5 3 d 2087309 34 | NY 1 9 d 19572932 35 | NC 4 9 r 9749476 36 | ND 2 3 r 701176 37 | OH 3 8 d 11548923 38 | OK 5 4 r 3818814 39 | OR 3 1 d 3899001 40 | PA 2 9 d 12767118 41 | RI 2 11 d 1054621 42 | SC 5 9 r 4717354 43 | SD 2 4 r 833566 44 | TN 4 6 r 6453898 45 | TX 6 4 r 26084481 46 | UT 4 2 r 2853375 47 | VT 0 10 d 626090 48 | VA 3 9 d 8185080 49 | WA 2 1 d 6897058 50 | WV 4 8 r 1856872 51 | WI 2 6 d 5719960 52 | WY 3 3 r 576305 53 | -------------------------------------------------------------------------------- /elections/2016.d: -------------------------------------------------------------------------------- 1 | # 2016 Clinton Trump 2 | AL 5 7 r 4863525 3 | AK 1 0 r 741456 4 | AZ 5 2 r 6941072 5 | AR 5 5 r 2989918 6 | CA 5 1 d 39167117 7 | CO 4 3 r 5539215 8 | CT 1 10 d 3578141 9 | DE 3 11 d 948921 10 | DC 3 10 d 685815 11 | FL 6 9 r 20613477 12 | GA 5 8 r 10301890 13 | HI 6 0 d 1427559 14 | ID 3 2 r 1682380 15 | IL 3 6 d 12820527 16 | IN 3 7 r 6634304 17 | IA 3 5 r 3131371 18 | KS 4 4 r 2910844 19 | KY 4 7 r 4438182 20 | LA 6 5 r 4678135 21 | ME 0 12 d 1331317 22 | MD 4 10 d 6003323 23 | MA 1 11 d 6823608 24 | MI 2 7 r 9950571 25 | MN 2 5 d 5522744 26 | MS 5 6 r 2987938 27 | MO 4 5 r 6087135 28 | MT 2 2 d 1040859 29 | NE 3 4 r 1905616 30 | NV 4 1 d 2917563 31 | NH 0 11 d 1342307 32 | NJ 2 10 d 8870827 33 | NM 5 3 d 2091630 34 | NY 1 9 d 19633428 35 | NC 4 9 r 10154788 36 | ND 2 3 r 754434 37 | OH 3 8 r 11634370 38 | OK 5 4 r 3926331 39 | OR 3 1 d 4089976 40 | PA 2 9 r 12782275 41 | RI 2 11 d 1056770 42 | SC 5 9 r 4957968 43 | SD 2 4 r 862996 44 | TN 4 6 r 6646010 45 | TX 6 4 r 27914410 46 | UT 4 2 r 3041868 47 | VT 0 10 d 623657 48 | VA 3 9 d 8410106 49 | WA 2 1 d 7294771 50 | WV 4 8 r 1831023 51 | WI 2 6 r 5772628 52 | WY 3 3 r 584215 53 | -------------------------------------------------------------------------------- /elections/2020.d: -------------------------------------------------------------------------------- 1 | # 2020 Biden Trump 2 | AL 5 7 r 4903185 3 | AK 1 0 r 731545 4 | AZ 5 2 d 7278717 5 | AR 5 5 r 3017804 6 | CA 5 1 d 39512223 7 | CO 4 3 d 5758736 8 | CT 1 10 d 3565287 9 | DE 3 11 d 973764 10 | DC 3 10 d 705749 11 | FL 6 9 r 21477737 12 | GA 5 8 d 10617423 13 | HI 6 0 d 1415872 14 | ID 3 2 r 1787065 15 | IL 3 6 d 12671821 16 | IN 3 7 r 6732219 17 | IA 3 5 r 3155070 18 | KS 4 4 r 2913314 19 | KY 4 7 r 4467673 20 | LA 6 5 r 4648794 21 | ME 0 12 d 1344212 22 | MD 4 10 d 6045680 23 | MA 1 11 d 6892503 24 | MI 2 7 d 9986857 25 | MN 2 5 d 5639632 26 | MS 5 6 r 2976149 27 | MO 4 5 r 6137428 28 | MT 2 2 r 1068778 29 | NE 3 4 r 1934408 30 | NV 4 1 d 3080156 31 | NH 0 11 d 1359711 32 | NJ 2 10 d 8882190 33 | NM 5 3 d 2096829 34 | NY 1 9 d 19453561 35 | NC 4 9 r 10488084 36 | ND 2 3 r 762062 37 | OH 3 8 r 11689100 38 | OK 5 4 r 3956971 39 | OR 3 1 d 4217737 40 | PA 2 9 d 12801989 41 | RI 2 11 d 1059361 42 | SC 5 9 r 5148714 43 | SD 2 4 r 884659 44 | TN 4 6 r 6829174 45 | TX 6 4 r 28995881 46 | UT 4 2 r 3205958 47 | VT 0 10 d 623989 48 | VA 3 9 d 8535519 49 | WA 2 1 d 7614893 50 | WV 4 8 r 1792147 51 | WI 2 6 d 5822434 52 | WY 3 3 r 578759 53 | -------------------------------------------------------------------------------- /elections/Go-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/elections/Go-Bold.ttf -------------------------------------------------------------------------------- /elections/Go-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/elections/Go-Regular.ttf -------------------------------------------------------------------------------- /elections/README.md: -------------------------------------------------------------------------------- 1 | # Elections 2 | ![elections](elections.png) 3 | 4 | # usage 5 | 6 | ``` 7 | -bgcolor string 8 | background color (default "black") 9 | -colsize float 10 | column size (canvas %) (default 7) 11 | -height int 12 | canvas height (default 900) 13 | -left float 14 | map left value (canvas %) (default 15) 15 | -rowsize float 16 | rowsize (canvas %) (default 9) 17 | -sans string 18 | sans font (default "Go-Regular") 19 | -shape string 20 | shape for states: 21 | "c": circle, 22 | "h": hexagon, 23 | "s": square 24 | "l": line 25 | "g": geographic 26 | "p": plain text (default "c") 27 | -symbol string 28 | symbol font (default "stateface") 29 | -textcolor string 30 | text color (default "white") 31 | -top float 32 | map top value (canvas %) (default 75) 33 | -width int 34 | canvas width (default 1200) 35 | ``` -------------------------------------------------------------------------------- /elections/abbr.d: -------------------------------------------------------------------------------- 1 | AL 2 | AK 3 | AZ 4 | AR 5 | CA 6 | CO 7 | CT 8 | DE 9 | DC 10 | FL 11 | GA 12 | HI 13 | ID 14 | IL 15 | IN 16 | IA 17 | KS 18 | KY 19 | LA 20 | ME 21 | MD 22 | MA 23 | MI 24 | MN 25 | MS 26 | MO 27 | MT 28 | NE 29 | NV 30 | NH 31 | NJ 32 | NM 33 | NY 34 | NC 35 | ND 36 | OH 37 | OK 38 | OR 39 | PA 40 | RI 41 | SC 42 | SD 43 | TN 44 | TX 45 | UT 46 | VT 47 | VA 48 | WA 49 | WV 50 | WI 51 | WY 52 | -------------------------------------------------------------------------------- /elections/elections.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/elections/elections.png -------------------------------------------------------------------------------- /elections/fips.d: -------------------------------------------------------------------------------- 1 | AL 2 | AK 3 | AZ 4 | AR 5 | CA 6 | CO 7 | CT 8 | DE 9 | DC 10 | FL 11 | GA 12 | HI 13 | ID 14 | IL 15 | IN 16 | IA 17 | KS 18 | KY 19 | LA 20 | ME 21 | MD 22 | MA 23 | MI 24 | MN 25 | MS 26 | MO 27 | MT 28 | NE 29 | NV 30 | NH 31 | NJ 32 | NM 33 | NY 34 | NC 35 | ND 36 | OH 37 | OK 38 | OR 39 | PA 40 | RI 41 | SC 42 | SD 43 | TN 44 | TX 45 | UT 46 | VT 47 | VA 48 | WA 49 | WV 50 | WI 51 | WY 52 | -------------------------------------------------------------------------------- /elections/grid.d: -------------------------------------------------------------------------------- 1 | AL 5 7 2 | AK 1 0 3 | AZ 5 2 4 | AR 5 5 5 | CA 5 1 6 | CO 4 3 7 | CT 1 10 8 | DE 3 11 9 | DC 3 10 10 | FL 6 9 11 | GA 5 8 12 | HI 6 0 13 | ID 3 2 14 | IL 3 6 15 | IN 3 7 16 | IA 3 5 17 | KS 4 4 18 | KY 4 7 19 | LA 6 5 20 | ME 0 12 21 | MD 4 10 22 | MA 1 11 23 | MI 2 7 24 | MN 2 5 25 | MS 5 6 26 | MO 4 5 27 | MT 2 2 28 | NE 3 4 29 | NV 4 1 30 | NH 0 11 31 | NJ 2 10 32 | NM 5 3 33 | NY 1 9 34 | NC 4 9 35 | ND 2 3 36 | OH 3 8 37 | OK 5 4 38 | OR 3 1 39 | PA 2 9 40 | RI 2 11 41 | SC 5 9 42 | SD 2 4 43 | TN 4 6 44 | TX 6 4 45 | UT 4 2 46 | VT 0 10 47 | VA 3 9 48 | WA 2 1 49 | WV 4 8 50 | WI 2 6 51 | WY 3 3 52 | -------------------------------------------------------------------------------- /elections/nyt-1792.d: -------------------------------------------------------------------------------- 1 | # 1792 Washington:i 2 | CT 3 9 i 237946 3 | DE 4 9 i 59096 4 | GA 6 7 i 82548 5 | KY 4 5 i 73677 6 | MD 4 8 i 319728 7 | MA 2 9 i 378787 8 | NH 1 10 i 141885 9 | NJ 3 8 i 184139 10 | NY 2 8 i 340120 11 | NC 5 7 i 393751 12 | PA 3 7 i 434373 13 | RI 3 10 i 68825 14 | SC 5 6 i 249073 15 | VT 1 9 i 85425 16 | VA 4 7 i 691937 17 | -------------------------------------------------------------------------------- /elections/nyt-1796.d: -------------------------------------------------------------------------------- 1 | # 1796 Adams:f Jefferson:dr 2 | CT 3 9 f 237946 3 | DE 4 9 f 59096 4 | GA 6 7 dr 82548 5 | KY 4 5 dr 73677 6 | MD 4 8 dr 319728 7 | MA 2 9 f 378787 8 | NH 1 10 f 141885 9 | NJ 3 8 f 184139 10 | NY 2 8 f 340120 11 | NC 5 7 dr 393751 12 | PA 3 7 dr 434373 13 | RI 3 10 f 68825 14 | SC 5 6 dr 249073 15 | TN 5 5 dr 35691 16 | VT 1 9 f 85425 17 | VA 4 7 dr 691937 18 | -------------------------------------------------------------------------------- /elections/nyt-1800.d: -------------------------------------------------------------------------------- 1 | # 1800 Adams:f Jefferson:dr 2 | AL 6 6 dr 1250 3 | CT 3 9 f 251002 4 | DE 4 9 f 64273 5 | GA 6 7 dr 162686 6 | KY 4 5 dr 220959 7 | MD 4 8 dr 341548 8 | MA 2 9 f 422845 9 | NH 1 10 f 183858 10 | NJ 3 8 f 211149 11 | NY 2 8 f 586050 12 | NC 5 7 dr 478103 13 | PA 3 7 dr 602545 14 | RI 3 10 f 69122 15 | SC 5 6 dr 345591 16 | TN 5 5 dr 105602 17 | VT 1 9 f 154465 18 | VA 4 7 dr 807557 19 | -------------------------------------------------------------------------------- /elections/nyt-1804.d: -------------------------------------------------------------------------------- 1 | # 1804 Pinckney:f Jefferson:dr 2 | CT 3 9 dr 251002 3 | DE 4 9 f 64273 4 | GA 6 7 dr 162686 5 | KY 4 5 dr 220959 6 | MD 4 8 dr 341548 7 | MA 2 9 dr 422845 8 | NH 1 10 dr 183858 9 | NJ 3 8 dr 211149 10 | NY 2 8 dr 586050 11 | NC 5 7 dr 478103 12 | PA 3 7 dr 602545 13 | RI 3 10 f 69122 14 | SC 5 6 dr 345591 15 | TN 5 5 dr 105602 16 | VT 1 9 dr 154465 17 | VA 4 7 dr 807557 18 | -------------------------------------------------------------------------------- /elections/nyt-1808.d: -------------------------------------------------------------------------------- 1 | # 1808 Pinckney:f Madison:dr 2 | CT 3 9 dr 251002 3 | DE 4 9 f 64273 4 | GA 6 7 dr 162686 5 | KY 4 5 dr 220959 6 | MD 4 8 dr 341548 7 | MA 2 9 f 422845 8 | NH 1 10 f 183858 9 | NJ 3 8 dr 211149 10 | NY 2 8 dr 586050 11 | NC 5 7 dr 478103 12 | PA 3 7 dr 602545 13 | RI 3 10 f 69122 14 | SC 5 6 dr 345591 15 | TN 5 5 dr 105602 16 | VT 1 9 dr 154465 17 | VA 4 7 dr 807557 18 | -------------------------------------------------------------------------------- /elections/nyt-1812.d: -------------------------------------------------------------------------------- 1 | # 1812 Clinton:f Madison:dr 2 | CT 3 9 f 262042 3 | DE 4 9 f 72674 4 | GA 6 7 dr 251407 5 | KY 4 5 dr 406511 6 | LA 6 4 dr 76556 7 | MD 4 8 dr 380546 8 | MA 2 9 f 472040 9 | NH 1 10 f 214360 10 | NJ 3 8 f 245555 11 | NY 2 8 dr 959049 12 | NC 5 7 dr 556526 13 | PA 3 7 dr 810091 14 | RI 3 10 f 76931 15 | SC 5 6 dr 415115 16 | TN 5 5 dr 261727 17 | VT 1 9 dr 217713 18 | VA 4 7 dr 877683 19 | -------------------------------------------------------------------------------- /elections/nyt-1816.d: -------------------------------------------------------------------------------- 1 | # 1816 King:f Madison:dr 2 | CT 3 9 f 262042 3 | DE 4 9 f 72674 4 | GA 6 7 dr 251407 5 | KY 4 5 dr 406511 6 | LA 6 4 dr 76556 7 | MD 4 8 dr 380546 8 | MA 2 9 f 472040 9 | NH 1 10 dr 214360 10 | NJ 3 8 dr 245555 11 | NY 2 8 dr 959049 12 | NC 5 7 dr 556526 13 | PA 3 7 dr 810091 14 | RI 3 10 dr 76931 15 | SC 5 6 dr 415115 16 | TN 5 5 dr 261727 17 | VT 1 9 dr 217713 18 | VA 4 7 dr 877683 19 | -------------------------------------------------------------------------------- /elections/nyt-1820.d: -------------------------------------------------------------------------------- 1 | # 1820 Monroe:dr 2 | AL 6 6 dr 127901 3 | CT 3 9 dr 275202 4 | DE 4 9 dr 72749 5 | GA 6 7 dr 340989 6 | IL 2 5 dr 55211 7 | IN 3 5 dr 147178 8 | KY 4 5 dr 564317 9 | LA 6 4 dr 153407 10 | ME 0 10 dr 399455 11 | MD 4 8 dr 407350 12 | MA 2 9 dr 523287 13 | MS 6 5 dr 75448 14 | MO 4 4 dr 66586 15 | NH 1 10 dr 244161 16 | NJ 3 8 dr 277575 17 | NY 2 8 dr 1372812 18 | NC 5 7 dr 638829 19 | OH 3 6 dr 581434 20 | PA 3 7 dr 1049458 21 | RI 3 10 dr 83059 22 | SC 5 6 dr 502741 23 | TN 5 5 dr 422813 24 | VT 1 9 dr 235764 25 | VA 4 7 dr 938261 26 | -------------------------------------------------------------------------------- /elections/nyt-1824.d: -------------------------------------------------------------------------------- 1 | # 1824 Jackson Adams Crawford 2 | AL 6 6 d 127901 3 | CT 3 9 r 275202 4 | DE 4 9 i 72749 5 | GA 6 7 i 340989 6 | IL 2 5 r 55211 7 | IN 3 5 d 147178 8 | KY 4 5 r 564317 9 | LA 6 4 r 153407 10 | ME 0 10 r 399455 11 | MD 4 8 r 407350 12 | MA 2 9 r 523287 13 | MS 6 5 d 75448 14 | MO 4 4 r 66586 15 | NH 1 10 r 244161 16 | NJ 3 8 d 277575 17 | NY 2 8 r 1372812 18 | NC 5 7 i 638829 19 | OH 3 6 r 581434 20 | PA 3 7 d 1049458 21 | RI 3 10 r 83059 22 | SC 5 6 d 502741 23 | TN 5 5 d 422813 24 | VT 1 9 r 235764 25 | VA 4 7 i 938261 26 | -------------------------------------------------------------------------------- /elections/nyt-1828.d: -------------------------------------------------------------------------------- 1 | # 1828 Jackson Adams 2 | AL 6 6 d 127901 3 | CT 3 9 r 275202 4 | DE 4 9 r 72749 5 | GA 6 7 d 340989 6 | IL 2 5 d 55211 7 | IN 3 5 d 147178 8 | KY 4 5 r 564317 9 | LA 6 4 d 153407 10 | ME 0 10 d 399455 11 | MD 4 8 r 407350 12 | MA 2 9 r 523287 13 | MS 6 5 d 75448 14 | MO 4 4 d 66586 15 | NH 1 10 r 244161 16 | NJ 3 8 r 277575 17 | NY 2 8 d 1372812 18 | NC 5 7 d 638829 19 | OH 3 6 d 581434 20 | PA 3 7 d 1049458 21 | RI 3 10 r 83059 22 | SC 5 6 d 502741 23 | TN 5 5 d 422813 24 | VT 1 9 r 235764 25 | VA 4 7 d 938261 26 | -------------------------------------------------------------------------------- /elections/nyt-1832.d: -------------------------------------------------------------------------------- 1 | # 1832 Jackson Clay Floyd/Wirt 2 | AL 6 6 d 309527 3 | CT 3 9 r 297675 4 | DE 4 9 r 76748 5 | GA 6 7 d 516823 6 | IL 2 5 d 157445 7 | IN 3 5 d 343031 8 | KY 4 5 r 687917 9 | LA 6 4 d 215739 10 | ME 0 10 d 399455 11 | MD 4 8 r 447040 12 | MA 2 9 r 610408 13 | MS 6 5 d 136621 14 | MO 4 4 d 140455 15 | NH 1 10 d 269328 16 | NJ 3 8 d 320823 17 | NY 2 8 d 1918608 18 | NC 5 7 d 737987 19 | OH 3 6 d 937903 20 | PA 3 7 d 1348233 21 | RI 3 10 r 97199 22 | SC 5 6 i 581185 23 | TN 5 5 d 681904 24 | VT 1 9 i 280652 25 | VA 4 7 d 1044054 26 | -------------------------------------------------------------------------------- /elections/nyt-1836.d: -------------------------------------------------------------------------------- 1 | # 1836 Van-Buren Harrison:w 2 | AL 6 6 d 309527 3 | AR 5 4 d 30388 4 | CT 3 9 d 297675 5 | DE 4 9 w 76748 6 | GA 6 7 w 516823 7 | IL 2 5 d 157445 8 | IN 3 5 w 343031 9 | KY 4 5 w 687917 10 | LA 6 4 d 215739 11 | ME 0 10 d 399455 12 | MD 4 8 w 447040 13 | MA 2 9 w 610408 14 | MI 2 6 d 28004 15 | MS 6 5 d 136621 16 | MO 4 4 d 140455 17 | NH 1 10 d 269328 18 | NJ 3 8 w 320823 19 | NY 2 8 d 1918608 20 | NC 5 7 d 737987 21 | OH 3 6 w 937903 22 | PA 3 7 d 1348233 23 | RI 3 10 d 97199 24 | SC 5 6 w 581185 25 | TN 5 5 w 681904 26 | VT 1 9 w 280652 27 | VA 4 7 d 1044054 28 | -------------------------------------------------------------------------------- /elections/nyt-1840.d: -------------------------------------------------------------------------------- 1 | # 1840 Van-Buren Harrison:w 2 | AL 6 6 d 590756 3 | AR 5 4 d 97574 4 | CT 3 9 w 309978 5 | DE 4 9 w 78085 6 | GA 6 7 w 691392 7 | IL 2 5 d 476183 8 | IN 3 5 w 685866 9 | KY 4 5 w 779828 10 | LA 6 4 w 352411 11 | ME 0 10 w 501793 12 | MD 4 8 w 583034 13 | MA 2 9 w 737699 14 | MI 2 6 w 212267 15 | MS 6 5 w 375651 16 | MO 4 4 d 383702 17 | NH 1 10 d 284574 18 | NJ 3 8 w 373306 19 | NY 2 8 w 2428921 20 | NC 5 7 w 753419 21 | OH 3 6 w 1519467 22 | PA 3 7 w 1724033 23 | RI 3 10 w 108830 24 | SC 5 6 d 594398 25 | TN 5 5 w 829210 26 | VT 1 9 w 291948 27 | VA 4 7 d 1025227 28 | -------------------------------------------------------------------------------- /elections/nyt-1844.d: -------------------------------------------------------------------------------- 1 | # 1844 Polk Clay:w 2 | AL 6 6 d 590756 3 | AR 5 4 d 97574 4 | CT 3 9 w 309978 5 | DE 4 9 w 78085 6 | GA 6 7 d 691392 7 | IL 2 5 d 476183 8 | IN 3 5 d 685866 9 | KY 4 5 w 779828 10 | LA 6 4 d 352411 11 | ME 0 10 d 501793 12 | MD 4 8 w 583034 13 | MA 2 9 w 737699 14 | MI 2 6 d 212267 15 | MS 6 5 d 375651 16 | MO 4 4 d 383702 17 | NH 1 10 d 284574 18 | NJ 3 8 w 373306 19 | NY 2 8 d 2428921 20 | NC 5 7 w 753419 21 | OH 3 6 w 1519467 22 | PA 3 7 d 1724033 23 | RI 3 10 w 108830 24 | SC 5 6 d 594398 25 | TN 5 5 w 829210 26 | VT 1 9 w 291948 27 | VA 4 7 d 1025227 28 | -------------------------------------------------------------------------------- /elections/nyt-1848.d: -------------------------------------------------------------------------------- 1 | # 1848 Cass Taylor:w 2 | AL 6 6 d 590756 3 | AR 5 4 d 97574 4 | CT 3 9 w 309978 5 | DE 4 9 w 78085 6 | FL 7 8 w 54477 7 | GA 6 7 w 691392 8 | IL 2 5 d 476183 9 | IN 3 5 d 685866 10 | IA 3 4 d 43112 11 | KY 4 5 w 779828 12 | LA 6 4 w 352411 13 | ME 0 10 d 501793 14 | MD 4 8 w 583034 15 | MA 2 9 w 737699 16 | MI 2 6 d 212267 17 | MS 6 5 d 375651 18 | MO 4 4 d 383702 19 | NH 1 10 d 284574 20 | NJ 3 8 w 373306 21 | NY 2 8 w 2428921 22 | NC 5 7 w 753419 23 | OH 3 6 d 1519467 24 | PA 3 7 w 1724033 25 | RI 3 10 w 108830 26 | SC 5 6 d 594398 27 | TN 5 5 w 829210 28 | TX 7 3 d 212592 29 | VT 1 9 w 291948 30 | VA 4 7 d 1025227 31 | WI 1 5 d 30945 32 | -------------------------------------------------------------------------------- /elections/nyt-1852.d: -------------------------------------------------------------------------------- 1 | # 1852 Pierce Scott:w 2 | AL 6 6 d 771623 3 | AR 5 4 d 209897 4 | CA 4 0 d 92597 5 | CT 3 9 d 370792 6 | DE 4 9 d 91532 7 | FL 7 8 d 87445 8 | GA 6 7 d 906185 9 | IL 2 5 d 851470 10 | IN 3 5 d 988416 11 | IA 3 4 d 192214 12 | KY 4 5 w 982405 13 | LA 6 4 d 517762 14 | ME 0 10 d 583169 15 | MD 4 8 d 583034 16 | MA 2 9 w 994514 17 | MI 2 6 d 397654 18 | MS 6 5 d 606526 19 | MO 4 4 d 682044 20 | NH 1 10 d 317976 21 | NJ 3 8 d 489555 22 | NY 2 8 d 3097394 23 | NC 5 7 d 869039 24 | OH 3 6 d 1980329 25 | PA 3 7 d 2311786 26 | RI 3 10 d 147545 27 | SC 5 6 d 668507 28 | TN 5 5 w 1002717 29 | TX 7 3 d 212592 30 | VT 1 9 w 314120 31 | VA 4 7 d 1119348 32 | WV 4 6 d 302313 33 | WI 1 5 d 305391 34 | -------------------------------------------------------------------------------- /elections/nyt-1856.d: -------------------------------------------------------------------------------- 1 | # 1856 Buchanan Frémont Fillmore:w 2 | AL 6 6 d 771623 3 | AR 5 4 d 209897 4 | CA 4 0 d 92597 5 | CT 3 9 r 370792 6 | DE 4 9 d 91532 7 | FL 7 8 d 87445 8 | GA 6 7 d 906185 9 | IL 2 5 d 851470 10 | IN 3 5 d 988416 11 | IA 3 4 r 192214 12 | KY 4 5 d 982405 13 | LA 6 4 d 517762 14 | ME 0 10 r 583169 15 | MD 4 8 w 583034 16 | MA 2 9 r 994514 17 | MI 2 6 r 397654 18 | MS 6 5 d 606526 19 | MO 4 4 d 682044 20 | NH 1 10 r 317976 21 | NJ 3 8 d 489555 22 | NY 2 8 r 3097394 23 | NC 5 7 d 869039 24 | OH 3 6 r 1980329 25 | PA 3 7 d 2311786 26 | RI 3 10 r 147545 27 | SC 5 6 d 668507 28 | TN 5 5 d 1002717 29 | TX 7 3 d 212592 30 | VT 1 9 r 314120 31 | VA 4 7 d 1119348 32 | WV 4 6 d 302313 33 | WI 1 5 r 305391 34 | -------------------------------------------------------------------------------- /elections/nyt-1860.d: -------------------------------------------------------------------------------- 1 | # 1860 Breckinridge Lincoln Bell/Douglas 2 | AL 6 6 d 964201 3 | AR 5 4 d 435450 4 | CA 4 0 r 379994 5 | CT 3 9 r 460147 6 | DE 4 9 d 112216 7 | FL 7 8 d 140424 8 | GA 6 7 d 1057286 9 | IL 2 5 r 1711951 10 | IN 3 5 r 1350428 11 | IA 3 4 r 674913 12 | KY 4 5 i 1155684 13 | LA 6 4 d 708002 14 | ME 0 10 r 628279 15 | MD 4 8 d 687049 16 | MA 2 9 r 1231066 17 | MI 2 6 r 749113 18 | MN 2 4 r 172023 19 | MS 6 5 d 791305 20 | MO 4 4 i 1182012 21 | NH 1 10 r 326073 22 | NJ 3 8 r 672035 23 | NY 2 8 r 3880735 24 | NC 5 7 d 992622 25 | OH 3 6 r 2339511 26 | OR 3 0 r 52465 27 | PA 3 7 r 2906215 28 | RI 3 10 r 174620 29 | SC 5 6 d 703708 30 | TN 5 5 i 1109801 31 | TX 7 3 d 604215 32 | VT 1 9 r 315098 33 | VA 4 7 i 1219630 34 | WV 4 6 i 376688 35 | WI 1 5 r 775881 36 | -------------------------------------------------------------------------------- /elections/nyt-1864.d: -------------------------------------------------------------------------------- 1 | # 1864 McClellan Lincoln Confederate 2 | AL 6 6 i 964201 3 | AR 5 4 i 435450 4 | CA 4 0 r 379994 5 | CT 3 9 r 460147 6 | DE 4 9 d 112216 7 | FL 7 8 i 140424 8 | GA 6 7 i 1057286 9 | IL 2 5 r 1711951 10 | IN 3 5 r 1350428 11 | IA 3 4 r 674913 12 | KS 5 3 r 107206 13 | KY 4 5 d 1155684 14 | LA 6 4 r 708002 15 | ME 0 10 r 628279 16 | MD 4 8 r 687049 17 | MA 2 9 r 1231066 18 | MI 2 6 r 749113 19 | MN 2 4 r 172023 20 | MS 6 5 i 791305 21 | MO 4 4 r 1182012 22 | NV 3 1 r 6857 23 | NH 1 10 r 326073 24 | NJ 3 8 d 672035 25 | NY 2 8 r 3880735 26 | NC 5 7 i 992622 27 | OH 3 6 r 2339511 28 | OR 3 0 r 52465 29 | PA 3 7 r 2906215 30 | RI 3 10 r 174620 31 | SC 5 6 i 703708 32 | TN 5 5 r 1109801 33 | TX 7 3 i 604215 34 | VT 1 9 r 315098 35 | VA 4 7 i 1219630 36 | WV 4 6 r 376688 37 | WI 1 5 r 775881 38 | -------------------------------------------------------------------------------- /elections/nyt-1868.d: -------------------------------------------------------------------------------- 1 | # 1868 Seymour Grant 2 | AL 6 6 r 964201 3 | AR 5 4 r 435450 4 | CA 4 0 r 379994 5 | CT 3 9 r 460147 6 | DE 4 9 d 112216 7 | FL 7 8 r 140424 8 | GA 6 7 d 1057286 9 | IL 2 5 r 1711951 10 | IN 3 5 r 1350428 11 | IA 3 4 r 674913 12 | KS 5 3 r 107206 13 | KY 4 5 d 1155684 14 | LA 6 4 d 708002 15 | ME 0 10 r 628279 16 | MD 4 8 d 687049 17 | MA 2 9 r 1231066 18 | MI 2 6 r 749113 19 | MN 2 4 r 172023 20 | MO 4 4 r 1182012 21 | NE 4 3 r 28841 22 | NV 3 1 r 6857 23 | NH 1 10 r 326073 24 | NJ 3 8 d 672035 25 | NY 2 8 d 3880735 26 | NC 5 7 r 992622 27 | OH 3 6 r 2339511 28 | OR 3 0 d 52465 29 | PA 3 7 r 2906215 30 | RI 3 10 r 174620 31 | SC 5 6 r 703708 32 | TN 5 5 r 1109801 33 | VT 1 9 r 315098 34 | WV 4 6 r 376688 35 | WI 1 5 r 775881 36 | -------------------------------------------------------------------------------- /elections/nyt-1872.d: -------------------------------------------------------------------------------- 1 | # 1872 Greely Grant 2 | AL 6 6 r 996992 3 | AR 5 4 r 484471 4 | CA 4 0 r 560247 5 | CT 3 9 r 537454 6 | DE 4 9 r 125015 7 | FL 7 8 r 187748 8 | GA 6 7 d 1184109 9 | IL 2 5 r 2539891 10 | IN 3 5 r 1680637 11 | IA 3 4 r 1194020 12 | KS 5 3 r 364399 13 | KY 4 5 d 1321011 14 | LA 6 4 r 726915 15 | ME 0 10 r 626915 16 | MD 4 8 d 780894 17 | MA 2 9 r 1457351 18 | MI 2 6 r 1184059 19 | MN 2 4 r 439706 20 | MO 4 4 d 1721295 21 | MS 6 5 r 827922 22 | NE 4 3 r 122993 23 | NV 3 1 r 42941 24 | NH 1 10 r 318300 25 | NJ 3 8 r 906096 26 | NY 2 8 r 3880735 27 | NC 5 7 r 1071361 28 | OH 3 6 r 2665260 29 | OR 3 0 r 90923 30 | PA 3 7 r 3521951 31 | RI 3 10 r 217353 32 | SC 5 6 r 703708 33 | TN 5 5 d 1258520 34 | TX 7 3 d 818579 35 | VT 1 9 r 330551 36 | VA 4 7 r 1225163 37 | WV 4 6 r 442014 38 | WI 1 5 r 1054670 39 | -------------------------------------------------------------------------------- /elections/nyt-1876.d: -------------------------------------------------------------------------------- 1 | # 1876 Tilden Hayes 2 | AL 6 6 d 996992 3 | AR 5 4 d 484471 4 | CA 4 0 r 560247 5 | CO 4 2 r 39864 6 | CT 3 9 d 537454 7 | DE 4 9 d 125015 8 | FL 7 8 r 187748 9 | GA 6 7 d 1184109 10 | IL 2 5 r 2539891 11 | IN 3 5 d 1680637 12 | IA 3 4 r 1194020 13 | KS 5 3 r 364399 14 | KY 4 5 d 1321011 15 | LA 6 4 r 726915 16 | ME 0 10 r 626915 17 | MD 4 8 d 780894 18 | MA 2 9 r 1457351 19 | MI 2 6 r 1184059 20 | MN 2 4 r 439706 21 | MS 6 5 d 827922 22 | MO 4 4 d 1721295 23 | NE 4 3 r 122993 24 | NV 3 1 r 42941 25 | NH 1 10 r 318300 26 | NJ 3 8 d 906096 27 | NY 2 8 d 3880735 28 | NC 5 7 d 1071361 29 | OH 3 6 r 2665260 30 | OR 3 0 r 90923 31 | PA 3 7 r 3521951 32 | RI 3 10 r 217353 33 | SC 5 6 r 703708 34 | TN 5 5 d 1258520 35 | TX 7 3 d 818579 36 | VT 1 9 r 330551 37 | VA 4 7 d 1225163 38 | WV 4 6 d 442014 39 | WI 1 5 r 1054670 40 | -------------------------------------------------------------------------------- /elections/nyt-1880.d: -------------------------------------------------------------------------------- 1 | # 1880 Hancock Garfield 2 | AL 6 6 d 1262505 3 | AR 5 4 d 802525 4 | CA 4 0 d 864694 5 | CO 4 2 r 194327 6 | CT 3 9 r 622700 7 | DE 4 9 d 146608 8 | FL 7 8 d 269493 9 | GA 6 7 d 1542180 10 | IL 2 5 r 3077871 11 | IN 3 5 r 1978301 12 | IA 3 4 r 1624615 13 | KS 5 3 r 996096 14 | KY 4 5 d 1648690 15 | LA 6 4 d 939946 16 | ME 0 10 r 648936 17 | MD 4 8 d 934943 18 | MA 2 9 r 1783085 19 | MI 2 6 r 1636937 20 | MN 2 4 r 780773 21 | MS 6 5 d 1131597 22 | MO 4 4 d 2168380 23 | NE 4 3 r 452402 24 | NV 3 1 d 62266 25 | NH 1 10 r 346991 26 | NJ 3 8 d 1131116 27 | NY 2 8 d 5082871 28 | NC 5 7 d 1399750 29 | OH 3 6 r 3198062 30 | OR 3 0 r 174768 31 | PA 3 7 r 4282891 32 | RI 3 10 r 276531 33 | SC 5 6 d 995577 34 | TN 5 5 d 1542359 35 | TX 7 3 d 1591749 36 | VT 1 9 r 332286 37 | VA 4 7 d 1512565 38 | WV 4 6 d 618457 39 | WI 1 5 r 1315497 40 | -------------------------------------------------------------------------------- /elections/nyt-1884.d: -------------------------------------------------------------------------------- 1 | # 1884 Cleveland Blaine 2 | AL 6 6 d 1262505 3 | AR 5 4 d 802525 4 | CA 4 0 r 864694 5 | CO 4 2 r 194327 6 | CT 3 9 d 622700 7 | DE 4 9 d 146608 8 | FL 7 8 d 269493 9 | GA 6 7 d 1542180 10 | IL 2 5 r 3077871 11 | IN 3 5 d 1978301 12 | IA 3 4 r 1624615 13 | KS 5 3 r 996096 14 | KY 4 5 d 1648690 15 | LA 6 4 d 939946 16 | ME 0 10 r 648936 17 | MD 4 8 d 934943 18 | MA 2 9 r 1783085 19 | MI 2 6 r 1636937 20 | MN 2 4 r 780773 21 | MS 6 5 d 1131597 22 | MO 4 4 d 2168380 23 | NE 4 3 r 452402 24 | NV 3 1 r 62266 25 | NH 1 10 r 346991 26 | NJ 3 8 d 1131116 27 | NY 2 8 d 5082871 28 | NC 5 7 d 1399750 29 | OH 3 6 r 3198062 30 | OR 3 0 r 174768 31 | PA 3 7 r 4282891 32 | RI 3 10 r 276531 33 | SC 5 6 d 995577 34 | TN 5 5 d 1542359 35 | TX 7 3 d 1591749 36 | VT 1 9 r 332286 37 | VA 4 7 d 1512565 38 | WV 4 6 d 618457 39 | WI 1 5 r 1315497 40 | -------------------------------------------------------------------------------- /elections/nyt-1888.d: -------------------------------------------------------------------------------- 1 | # 1888 Cleveland Harrison 2 | AL 6 6 d 1262505 3 | AR 5 4 d 802525 4 | CA 4 0 r 864694 5 | CO 4 2 r 194327 6 | CT 3 9 d 622700 7 | DE 4 9 d 146608 8 | FL 7 8 d 269493 9 | GA 6 7 d 1542180 10 | IL 2 5 r 3077871 11 | IN 3 5 r 1978301 12 | IA 3 4 r 1624615 13 | KS 5 3 r 996096 14 | KY 4 5 d 1648690 15 | LA 6 4 d 939946 16 | ME 0 10 r 648936 17 | MD 4 8 d 934943 18 | MA 2 9 r 1783085 19 | MI 2 6 r 1636937 20 | MN 2 4 r 780773 21 | MS 6 5 d 1131597 22 | MO 4 4 d 2168380 23 | NE 4 3 r 452402 24 | NV 3 1 r 62266 25 | NH 1 10 r 346991 26 | NJ 3 8 d 1131116 27 | NY 2 8 r 5082871 28 | NC 5 7 d 1399750 29 | OH 3 6 r 3198062 30 | OR 3 0 r 174768 31 | PA 3 7 r 4282891 32 | RI 3 10 r 276531 33 | SC 5 6 d 995577 34 | TN 5 5 d 1542359 35 | TX 7 3 d 1591749 36 | VT 1 9 r 332286 37 | VA 4 7 d 1512565 38 | WV 4 6 d 618457 39 | WI 1 5 r 1315497 40 | -------------------------------------------------------------------------------- /elections/nyt-1892.d: -------------------------------------------------------------------------------- 1 | # 1892 Cleveland Harrison Weaver 2 | AL 6 6 d 1513401 3 | AR 5 4 d 1128211 4 | CA 4 0 d 1213398 5 | CO 4 2 i 413249 6 | CT 3 9 d 746258 7 | DE 4 9 d 168493 8 | FL 7 8 d 391422 9 | GA 6 7 d 1837353 10 | ID 2 1 i 88548 11 | IL 2 5 d 3826352 12 | IN 3 5 d 2192404 13 | IA 3 4 r 1912297 14 | KS 5 3 i 1428108 15 | KY 4 5 d 1858635 16 | LA 6 4 d 1118588 17 | ME 0 10 r 661086 18 | MD 4 8 d 1042390 19 | MA 2 9 r 2238947 20 | MI 2 6 r 2093890 21 | MN 2 4 r 1310283 22 | MS 6 5 d 1289600 23 | MO 4 4 d 2679185 24 | MT 2 2 r 142924 25 | NE 4 3 r 1062656 26 | NV 3 1 i 1062656 27 | NH 1 10 r 376530 28 | NJ 3 8 d 1444933 29 | NY 2 8 d 6003174 30 | NC 5 7 d 1617949 31 | ND 2 3 i 190983 32 | OH 3 6 r 3672329 33 | OR 3 0 r 317704 34 | PA 3 7 r 5258113 35 | RI 3 10 r 345506 36 | SC 5 6 d 1151149 37 | SD 3 3 r 348600 38 | TN 5 5 d 1767518 39 | TX 7 3 d 2235527 40 | VT 1 9 r 332422 41 | VA 4 7 d 1655980 42 | WA 2 0 r 357232 43 | WV 4 6 d 762794 44 | WI 1 5 d 1693330 45 | WY 3 2 r 62555 46 | -------------------------------------------------------------------------------- /elections/nyt-1896.d: -------------------------------------------------------------------------------- 1 | # 1896 McKinley Bryan 2 | AL 6 6 d 1513401 3 | AR 5 4 d 1128211 4 | CA 4 0 r 1213398 5 | CO 4 2 d 413249 6 | CT 3 9 r 746258 7 | DE 4 9 r 168493 8 | FL 7 8 d 391422 9 | GA 6 7 d 1837353 10 | ID 2 1 d 88548 11 | IL 2 5 r 3826352 12 | IN 3 5 r 2192404 13 | IA 3 4 r 1912297 14 | KS 5 3 d 1428108 15 | KY 4 5 r 1858635 16 | LA 6 4 d 1118588 17 | ME 0 10 r 661086 18 | MD 4 8 r 1042390 19 | MA 2 9 r 2238947 20 | MI 2 6 r 2093890 21 | MN 2 4 r 1310283 22 | MS 6 5 d 1289600 23 | MO 4 4 d 2679185 24 | MT 2 2 d 142924 25 | NE 4 3 d 1062656 26 | NV 3 1 d 1062656 27 | NH 1 10 r 376530 28 | NJ 3 8 r 1444933 29 | NY 2 8 r 6003174 30 | NC 5 7 d 1617949 31 | ND 2 3 r 190983 32 | OH 3 6 r 3672329 33 | OR 3 0 r 317704 34 | PA 3 7 r 5258113 35 | RI 3 10 r 345506 36 | SC 5 6 d 1151149 37 | SD 3 3 d 348600 38 | TN 5 5 d 1767518 39 | TX 7 3 d 2235527 40 | UT 4 1 d 143963 41 | VT 1 9 r 332422 42 | VA 4 7 d 1655980 43 | WA 2 0 d 357232 44 | WV 4 6 r 762794 45 | WI 1 5 r 1693330 46 | WY 3 2 d 62555 47 | -------------------------------------------------------------------------------- /elections/nyt-1900.d: -------------------------------------------------------------------------------- 1 | # 1900 Bryan McKinley 2 | AL 6 6 d 1828697 3 | AR 5 4 d 1311564 4 | CA 4 0 r 1485053 5 | CO 4 2 d 539700 6 | CT 3 9 r 908420 7 | DE 4 9 r 184735 8 | FL 7 8 d 528542 9 | GA 6 7 d 2216331 10 | ID 2 1 d 161772 11 | IL 2 5 r 4821550 12 | IN 3 5 r 2516462 13 | IA 3 4 r 2231853 14 | KS 5 3 r 1470495 15 | KY 4 5 d 2147174 16 | LA 6 4 d 1381625 17 | ME 0 10 r 694466 18 | MD 4 8 r 1188044 19 | MA 2 9 r 2805346 20 | MI 2 6 r 2420982 21 | MN 2 4 r 1751394 22 | MS 6 5 d 1551270 23 | MO 4 4 d 3106665 24 | MT 2 2 d 243329 25 | NE 4 3 r 1066300 26 | NV 3 1 d 42335 27 | NH 1 10 r 411588 28 | NJ 3 8 r 1883669 29 | NY 2 8 r 7268894 30 | NC 5 7 d 1893810 31 | ND 2 3 r 319146 32 | OH 3 6 r 4157545 33 | OR 3 0 r 413536 34 | PA 3 7 r 6302115 35 | RI 3 10 r 428556 36 | SC 5 6 d 1340316 37 | SD 3 3 r 401570 38 | TN 5 5 d 2020616 39 | TX 7 3 d 3048710 40 | UT 4 1 r 276749 41 | VT 1 9 r 343641 42 | VA 4 7 d 1854184 43 | WA 2 0 r 518103 44 | WV 4 6 r 958800 45 | WI 1 5 r 2069042 46 | WY 3 2 r 92531 47 | -------------------------------------------------------------------------------- /elections/nyt-1904.d: -------------------------------------------------------------------------------- 1 | # 1904 Roosevelt Parker 2 | AL 6 6 d 1828697 3 | AR 5 4 d 1311564 4 | CA 4 0 r 1485053 5 | CO 4 2 r 539700 6 | CT 3 9 r 908420 7 | DE 4 9 r 184735 8 | FL 7 8 d 528542 9 | GA 6 7 d 2216331 10 | ID 2 1 r 161772 11 | IL 2 5 r 4821550 12 | IN 3 5 r 2516462 13 | IA 3 4 r 2231853 14 | KS 5 3 r 1470495 15 | KY 4 5 d 2147174 16 | LA 6 4 d 1381625 17 | ME 0 10 r 694466 18 | MD 4 8 d 1188044 19 | MA 2 9 r 2805346 20 | MI 2 6 r 2420982 21 | MN 2 4 r 1751394 22 | MS 6 5 d 1551270 23 | MO 4 4 r 3106665 24 | MT 2 2 r 243329 25 | NE 4 3 r 1066300 26 | NV 3 1 r 42335 27 | NH 1 10 r 411588 28 | NJ 3 8 r 1883669 29 | NY 2 8 r 7268894 30 | NC 5 7 d 1893810 31 | ND 2 3 r 319146 32 | OH 3 6 r 4157545 33 | OR 3 0 r 413536 34 | PA 3 7 r 6302115 35 | RI 3 10 r 428556 36 | SC 5 6 d 1340316 37 | SD 3 3 r 401570 38 | TN 5 5 d 2020616 39 | TX 7 3 d 3048710 40 | UT 4 1 r 276749 41 | VT 1 9 r 343641 42 | VA 4 7 d 1854184 43 | WA 2 0 r 518103 44 | WV 4 6 r 958800 45 | WI 1 5 r 2069042 46 | WY 3 2 r 92531 47 | -------------------------------------------------------------------------------- /elections/nyt-1908.d: -------------------------------------------------------------------------------- 1 | # 1908 Bryan Taft 2 | AL 6 6 d 1828697 3 | AR 5 4 d 1311564 4 | CA 4 0 r 1485053 5 | CO 4 2 d 539700 6 | CT 3 9 r 908420 7 | DE 4 9 r 184735 8 | FL 7 8 d 528542 9 | GA 6 7 d 2216331 10 | ID 2 1 r 161772 11 | IL 2 5 r 4821550 12 | IN 3 5 r 2516462 13 | IA 3 4 r 2231853 14 | KS 5 3 r 1470495 15 | KY 4 5 d 2147174 16 | LA 6 4 d 1381625 17 | ME 0 10 r 694466 18 | MD 4 8 r 1188044 19 | MA 2 9 r 2805346 20 | MI 2 6 r 2420982 21 | MN 2 4 r 1751394 22 | MS 6 5 d 1551270 23 | MO 4 4 r 3106665 24 | MT 2 2 r 243329 25 | NE 4 3 d 1066300 26 | NV 3 1 d 42335 27 | NH 1 10 r 411588 28 | NJ 3 8 r 1883669 29 | NY 2 8 r 7268894 30 | NC 5 7 d 1893810 31 | ND 2 3 r 319146 32 | OH 3 6 r 4157545 33 | OK 6 3 d 790391 34 | OR 3 0 r 413536 35 | PA 3 7 r 6302115 36 | RI 3 10 r 428556 37 | SC 5 6 d 1340316 38 | SD 3 3 r 401570 39 | TN 5 5 d 2020616 40 | TX 7 3 d 3048710 41 | UT 4 1 r 276749 42 | VT 1 9 r 343641 43 | VA 4 7 d 1854184 44 | WA 2 0 r 518103 45 | WV 4 6 r 958800 46 | WI 1 5 r 2069042 47 | WY 3 2 r 92531 48 | -------------------------------------------------------------------------------- /elections/nyt-1912.d: -------------------------------------------------------------------------------- 1 | # 1912 Wilson Taft Roosevelt 2 | AL 6 6 d 1828697 3 | AZ 5 1 d 204354 4 | AR 5 4 d 1311564 5 | CA 4 0 i 1485053 6 | CO 4 2 d 539700 7 | CT 3 9 d 908420 8 | DE 4 9 d 184735 9 | FL 7 8 d 528542 10 | GA 6 7 d 2216331 11 | ID 2 1 d 161772 12 | IL 2 5 d 4821550 13 | IN 3 5 d 2516462 14 | IA 3 4 d 2231853 15 | KS 5 3 d 1470495 16 | KY 4 5 d 2147174 17 | LA 6 4 d 1381625 18 | ME 0 10 d 694466 19 | MD 4 8 d 1188044 20 | MA 2 9 d 2805346 21 | MI 2 6 i 2420982 22 | MN 2 4 i 1751394 23 | MS 6 5 d 1551270 24 | MO 4 4 d 3106665 25 | MT 2 2 d 243329 26 | NE 4 3 d 1066300 27 | NV 3 1 d 42335 28 | NH 1 10 d 411588 29 | NJ 3 8 d 1883669 30 | NM 5 2 d 327301 31 | NY 2 8 d 7268894 32 | NC 5 7 d 1893810 33 | ND 2 3 d 319146 34 | OH 3 6 d 4157545 35 | OK 6 3 d 790391 36 | OR 3 0 d 413536 37 | PA 3 7 i 6302115 38 | RI 3 10 d 428556 39 | SC 5 6 d 1340316 40 | SD 3 3 i 401570 41 | TN 5 5 d 2020616 42 | TX 7 3 d 3048710 43 | UT 4 1 r 276749 44 | VT 1 9 r 343641 45 | VA 4 7 d 1854184 46 | WA 2 0 i 518103 47 | WV 4 6 d 958800 48 | WI 1 5 d 2069042 49 | WY 3 2 d 92531 50 | -------------------------------------------------------------------------------- /elections/nyt-1916.d: -------------------------------------------------------------------------------- 1 | # 1916 Wilson Hughes 2 | AL 6 6 d 1828697 3 | AZ 5 1 d 204354 4 | AR 5 4 d 1311564 5 | CA 4 0 d 1485053 6 | CO 4 2 d 539700 7 | CT 3 9 r 908420 8 | DE 4 9 r 184735 9 | FL 7 8 d 528542 10 | GA 6 7 d 2216331 11 | ID 2 1 d 161772 12 | IL 2 5 r 4821550 13 | IN 3 5 r 2516462 14 | IA 3 4 r 2231853 15 | KS 5 3 d 1470495 16 | KY 4 5 d 2147174 17 | LA 6 4 d 1381625 18 | ME 0 10 r 694466 19 | MD 4 8 d 1188044 20 | MA 2 9 r 2805346 21 | MI 2 6 r 2420982 22 | MN 2 4 r 1751394 23 | MS 6 5 d 1551270 24 | MO 4 4 d 3106665 25 | MT 2 2 d 243329 26 | NE 4 3 d 1066300 27 | NV 3 1 d 42335 28 | NH 1 10 d 411588 29 | NJ 3 8 r 1883669 30 | NM 5 2 d 327301 31 | NY 2 8 r 7268894 32 | NC 5 7 d 1893810 33 | ND 2 3 d 319146 34 | OH 3 6 d 4157545 35 | OK 6 3 d 790391 36 | OR 3 0 r 413536 37 | PA 3 7 r 6302115 38 | RI 3 10 r 428556 39 | SC 5 6 d 1340316 40 | SD 3 3 r 401570 41 | TN 5 5 d 2020616 42 | TX 7 3 d 3048710 43 | UT 4 1 d 276749 44 | VT 1 9 r 343641 45 | VA 4 7 d 1854184 46 | WA 2 0 d 518103 47 | WV 4 6 r 958800 48 | WI 1 5 r 2069042 49 | WY 3 2 d 92531 50 | -------------------------------------------------------------------------------- /elections/nyt-1920.d: -------------------------------------------------------------------------------- 1 | # 1920 Cox Harding 2 | AL 6 6 d 2359000 3 | AZ 5 1 r 340000 4 | AR 5 4 d 1756000 5 | CA 4 0 r 3554000 6 | CO 4 2 r 937000 7 | CT 3 9 r 1391000 8 | DE 4 9 r 219000 9 | FL 7 8 d 962000 10 | GA 6 7 d 2926000 11 | ID 2 1 r 433000 12 | IL 2 5 r 6663000 13 | IN 3 5 r 2947000 14 | IA 3 4 r 2400000 15 | KS 5 3 r 1769000 16 | KY 4 5 d 2421000 17 | LA 6 4 d 1813000 18 | ME 0 10 r 771000 19 | MD 4 8 r 1464000 20 | MA 2 9 r 3882000 21 | MI 2 6 r 3723000 22 | MN 2 4 r 2403000 23 | MS 6 5 d 1800000 24 | MO 4 4 r 3404000 25 | MT 2 2 r 543000 26 | NE 4 3 r 1300000 27 | NV 3 1 r 78000 28 | NH 1 10 r 444000 29 | NJ 3 8 r 3198000 30 | NM 5 2 r 363000 31 | NY 2 8 r 10282000 32 | NC 5 7 d 2588000 33 | ND 2 3 r 646000 34 | OH 3 6 r 5799000 35 | OK 6 3 r 2055000 36 | OR 3 0 r 788000 37 | PA 3 7 r 8740000 38 | RI 3 10 r 613000 39 | SC 5 6 d 1685000 40 | SD 3 3 r 640000 41 | TN 5 5 r 2329000 42 | TX 7 3 d 4723000 43 | UT 4 1 r 453000 44 | VT 1 9 r 353000 45 | VA 4 7 d 2347000 46 | WA 2 0 r 1373000 47 | WV 4 6 r 1470000 48 | WI 1 5 r 2679000 49 | WY 3 2 r 197000 50 | -------------------------------------------------------------------------------- /elections/nyt-1924.d: -------------------------------------------------------------------------------- 1 | # 1924 Davis Coolidge LaFollette 2 | AL 6 6 d 2501000 3 | AZ 5 1 r 382000 4 | AR 5 4 d 1800000 5 | CA 4 0 r 4541000 6 | CO 4 2 r 1014000 7 | CT 3 9 r 1481000 8 | DE 4 9 r 219000 9 | FL 7 8 d 1160000 10 | GA 6 7 d 2920000 11 | ID 2 1 r 434000 12 | IL 2 5 r 7215000 13 | IN 3 5 r 3086000 14 | IA 3 4 r 2420000 15 | KS 5 3 r 1807000 16 | KY 4 5 r 2531000 17 | LA 6 4 d 1939000 18 | ME 0 10 r 788000 19 | MD 4 8 r 1537000 20 | MA 2 9 r 4102000 21 | MI 2 6 r 4214000 22 | MN 2 4 r 2521000 23 | MS 6 5 d 1886000 24 | MO 4 4 r 3508000 25 | MT 2 2 r 538000 26 | NE 4 3 r 1333000 27 | NV 3 1 r 84000 28 | NH 1 10 r 457000 29 | NJ 3 8 r 3573000 30 | NM 5 2 r 390000 31 | NY 2 8 r 10953000 32 | NC 5 7 r 2830000 33 | ND 2 3 r 642000 34 | OH 3 6 r 6319000 35 | OK 6 3 d 2179000 36 | OR 3 0 r 856000 37 | PA 3 7 r 9383000 38 | RI 3 10 r 669000 39 | SC 5 6 d 1710000 40 | SD 3 3 r 673000 41 | TN 5 5 r 2502000 42 | TX 7 3 d 5210000 43 | UT 4 1 r 481000 44 | VT 1 9 r 355000 45 | VA 4 7 d 2426000 46 | WA 2 0 r 1467000 47 | WV 4 6 r 1577000 48 | WI 1 5 i 2833000 49 | WY 3 2 r 215000 50 | -------------------------------------------------------------------------------- /elections/nyt-1928.d: -------------------------------------------------------------------------------- 1 | # 1928 Smith Hoover 2 | AL 6 6 d 2640000 3 | AZ 5 1 r 422000 4 | AR 5 4 d 1847000 5 | CA 4 0 r 5344000 6 | CO 4 2 r 1014000 7 | CT 3 9 r 1577000 8 | DE 4 9 r 233000 9 | FL 7 8 r 1433000 10 | GA 6 7 d 2903000 11 | ID 2 1 r 449000 12 | IL 2 5 r 7576000 13 | IN 3 5 r 3212000 14 | IA 3 4 r 2450000 15 | KS 5 3 r 1850000 16 | KY 4 5 r 2567000 17 | LA 6 4 d 2064000 18 | ME 0 10 r 797000 19 | MD 4 8 r 1610000 20 | MA 2 9 d 4217000 21 | MI 2 6 r 4665000 22 | MN 2 4 r 2592000 23 | MS 6 5 d 1981000 24 | MO 4 4 r 3601000 25 | MT 2 2 r 541000 26 | NE 4 3 r 1371000 27 | NV 3 1 r 89000 28 | NH 1 10 r 468000 29 | NJ 3 8 r 3968000 30 | NM 5 2 r 416000 31 | NY 2 8 r 11599000 32 | NC 5 7 r 3082000 33 | ND 2 3 r 665000 34 | OH 3 6 r 6608000 35 | OK 6 3 r 2344000 36 | OR 3 0 r 936000 37 | PA 3 7 r 9802000 38 | RI 3 10 d 678000 39 | SC 5 6 d 1739000 40 | SD 3 3 r 685000 41 | TN 5 5 r 2624000 42 | TX 7 3 r 5675000 43 | UT 4 1 r 504000 44 | VT 1 9 r 358000 45 | VA 4 7 r 2435000 46 | WA 2 0 r 1551000 47 | WV 4 6 r 1696000 48 | WI 1 5 r 2923000 49 | WY 3 2 r 220000 50 | -------------------------------------------------------------------------------- /elections/nyt-1932.d: -------------------------------------------------------------------------------- 1 | # 1932 Roosevelt Hoover 2 | AL 6 6 d 2653000 3 | AZ 5 1 d 426000 4 | AR 5 4 d 1836000 5 | CA 4 0 d 5894000 6 | CO 4 2 d 1066000 7 | CT 3 9 r 1637000 8 | DE 4 9 r 245000 9 | FL 7 8 d 1521000 10 | GA 6 7 d 2935000 11 | ID 2 1 d 459000 12 | IL 2 5 d 7736000 13 | IN 3 5 d 3281000 14 | IA 3 4 d 2489000 15 | KS 5 3 d 1883000 16 | KY 4 5 d 2676000 17 | LA 6 4 d 2155000 18 | ME 0 10 r 815000 19 | MD 4 8 d 1678000 20 | MA 2 9 d 4259000 21 | MI 2 6 d 4780000 22 | MN 2 4 d 2646000 23 | MS 6 5 d 2004000 24 | MO 4 4 d 3746000 25 | MT 2 2 d 540000 26 | NE 4 3 d 1386000 27 | NV 3 1 d 96000 28 | NH 1 10 r 474000 29 | NJ 3 8 d 4120000 30 | NM 5 2 d 441000 31 | NY 2 8 d 13001000 32 | NC 5 7 d 3227000 33 | ND 2 3 d 676000 34 | OH 3 6 d 6717000 35 | OK 6 3 d 2394000 36 | OR 3 0 d 972000 37 | PA 3 7 r 9764000 38 | RI 3 10 d 677000 39 | SC 5 6 d 1748000 40 | SD 3 3 d 692000 41 | TN 5 5 d 2711000 42 | TX 7 3 d 5961000 43 | UT 4 1 d 517000 44 | VT 1 9 r 358000 45 | VA 4 7 d 2452000 46 | WA 2 0 d 1584000 47 | WV 4 6 d 1747000 48 | WI 1 5 d 3021000 49 | WY 3 2 d 230000 50 | -------------------------------------------------------------------------------- /elections/nyt-1936.d: -------------------------------------------------------------------------------- 1 | # 1936 Roosevelt Landon 2 | AL 6 6 d 2743000 3 | AZ 5 1 d 443000 4 | AR 5 4 d 1892000 5 | CA 4 0 d 6341000 6 | CO 4 2 d 1090000 7 | CT 3 9 d 1672000 8 | DE 4 9 d 253000 9 | FL 7 8 d 1651000 10 | GA 6 7 d 2978000 11 | ID 2 1 d 495000 12 | IL 2 5 d 7840000 13 | IN 3 5 d 3348000 14 | IA 3 4 d 2509000 15 | KS 5 3 d 1869000 16 | KY 4 5 d 2768000 17 | LA 6 4 d 2246000 18 | ME 0 10 r 840000 19 | MD 4 8 d 1745000 20 | MA 2 9 d 4355000 21 | MI 2 6 d 4889000 22 | MN 2 4 d 2734000 23 | MS 6 5 d 2072000 24 | MO 4 4 d 3801000 25 | MT 2 2 d 554000 26 | NE 4 3 d 1358000 27 | NV 3 1 d 101000 28 | NH 1 10 d 481000 29 | NJ 3 8 d 4084000 30 | NM 5 2 d 489000 31 | NY 2 8 d 13481000 32 | NC 5 7 d 3346000 33 | ND 2 3 d 664000 34 | OH 3 6 d 6801000 35 | OK 6 3 d 2365000 36 | OR 3 0 d 1025000 37 | PA 3 7 d 9767000 38 | RI 3 10 d 686000 39 | SC 5 6 d 1781000 40 | SD 3 3 d 666000 41 | TN 5 5 d 2791000 42 | TX 7 3 d 6192000 43 | UT 4 1 d 527000 44 | VT 1 9 r 357000 45 | VA 4 7 d 2552000 46 | WA 2 0 d 1653000 47 | WV 4 6 d 1808000 48 | WI 1 5 d 3082000 49 | WY 3 2 d 240000 50 | -------------------------------------------------------------------------------- /elections/nyt-1940.d: -------------------------------------------------------------------------------- 1 | # 1940 Roosevelt Willkie 2 | AL 6 6 d 2845000 3 | AZ 5 1 d 499000 4 | AR 5 4 d 1955000 5 | CA 4 0 d 6950000 6 | CO 4 2 r 1130000 7 | CT 3 9 d 1708000 8 | DE 4 9 d 269000 9 | FL 7 8 d 1915000 10 | GA 6 7 d 3119000 11 | ID 2 1 d 522000 12 | IL 2 5 d 7905000 13 | IN 3 5 r 3433000 14 | IA 3 4 r 2537000 15 | KS 5 3 r 1788000 16 | KY 4 5 d 2859000 17 | LA 6 4 d 2370000 18 | ME 0 10 r 849000 19 | MD 4 8 d 1839000 20 | MA 2 9 d 4318000 21 | MI 2 6 r 5315000 22 | MN 2 4 d 2790000 23 | MS 6 5 d 2176000 24 | MO 4 4 d 3786000 25 | MT 2 2 d 558000 26 | NE 4 3 r 1316000 27 | NV 3 1 d 113000 28 | NH 1 10 d 492000 29 | NJ 3 8 d 4175000 30 | NM 5 2 d 531000 31 | NY 2 8 d 13456000 32 | NC 5 7 d 3574000 33 | ND 2 3 r 640000 34 | OH 3 6 d 6929000 35 | OK 6 3 d 2325000 36 | OR 3 0 d 1086000 37 | PA 3 7 d 9896000 38 | RI 3 10 d 719000 39 | SC 5 6 d 1902000 40 | SD 3 3 r 641000 41 | TN 5 5 d 2935000 42 | TX 7 3 d 6425000 43 | UT 4 1 d 552000 44 | VT 1 9 r 363000 45 | VA 4 7 d 2720000 46 | WA 2 0 d 1740000 47 | WV 4 6 d 1907000 48 | WI 1 5 d 3143000 49 | WY 3 2 d 250000 50 | -------------------------------------------------------------------------------- /elections/nyt-1944.d: -------------------------------------------------------------------------------- 1 | # 1944 Roosevelt Dewey 2 | AL 6 6 d 2802000 3 | AZ 5 1 d 610000 4 | AR 5 4 d 1768000 5 | CA 4 0 d 8945000 6 | CO 4 2 r 1137000 7 | CT 3 9 d 1778000 8 | DE 4 9 d 285000 9 | FL 7 8 d 2420000 10 | GA 6 7 d 3176000 11 | ID 2 1 d 529000 12 | IL 2 5 d 7719000 13 | IN 3 5 r 3440000 14 | IA 3 4 r 2301000 15 | KS 5 3 r 1779000 16 | KY 4 5 d 2631000 17 | LA 6 4 d 2508000 18 | ME 0 10 r 801000 19 | MD 4 8 d 2118000 20 | MA 2 9 d 4192000 21 | MI 2 6 d 5467000 22 | MN 2 4 d 2526000 23 | MS 6 5 d 2167000 24 | MO 4 4 d 3560000 25 | MT 2 2 d 469000 26 | NE 4 3 r 1216000 27 | NV 3 1 d 153000 28 | NH 1 10 d 456000 29 | NJ 3 8 d 4158000 30 | NM 5 2 d 527000 31 | NY 2 8 d 12628000 32 | NC 5 7 d 3560000 33 | ND 2 3 r 534000 34 | OH 3 6 r 6918000 35 | OK 6 3 d 2043000 36 | OR 3 0 d 1233000 37 | PA 3 7 d 9214000 38 | RI 3 10 d 795000 39 | SC 5 6 d 1943000 40 | SD 3 3 r 565000 41 | TN 5 5 d 2868000 42 | TX 7 3 d 6876000 43 | UT 4 1 d 605000 44 | VT 1 9 r 314000 45 | VA 4 7 d 3248000 46 | WA 2 0 d 2092000 47 | WV 4 6 d 1706000 48 | WI 1 5 r 2980000 49 | WY 3 2 r 242000 50 | -------------------------------------------------------------------------------- /elections/nyt-1948.d: -------------------------------------------------------------------------------- 1 | # 1948 Truman Dewey Thurmond 2 | AL 6 6 i 2969000 3 | AZ 5 1 d 690000 4 | AR 5 4 d 1825000 5 | CA 4 0 d 10064000 6 | CO 4 2 d 1263000 7 | CT 3 9 r 2014000 8 | DE 4 9 r 312000 9 | FL 7 8 d 2578000 10 | GA 6 7 d 3259000 11 | ID 2 1 d 551000 12 | IL 2 5 d 8552000 13 | IN 3 5 r 3877000 14 | IA 3 4 d 2543000 15 | KS 5 3 r 1892000 16 | KY 4 5 d 2817000 17 | LA 6 4 i 2596000 18 | ME 0 10 r 878000 19 | MD 4 8 r 2271000 20 | MA 2 9 d 4674000 21 | MI 2 6 r 6213000 22 | MN 2 4 d 2868000 23 | MS 6 5 i 2076000 24 | MO 4 4 d 3844000 25 | MT 2 2 d 542000 26 | NE 4 3 r 1265000 27 | NV 3 1 d 156000 28 | NH 1 10 r 520000 29 | NJ 3 8 r 4774000 30 | NM 5 2 d 604000 31 | NY 2 8 r 14497000 32 | NC 5 7 d 3837000 33 | ND 2 3 r 580000 34 | OH 3 6 d 7876000 35 | OK 6 3 d 2089000 36 | OR 3 0 r 1405000 37 | PA 3 7 r 10287000 38 | RI 3 10 d 787000 39 | SC 5 6 i 1996000 40 | SD 3 3 r 612000 41 | TN 5 5 d 3216000 42 | TX 7 3 d 7626000 43 | UT 4 1 d 653000 44 | VT 1 9 r 359000 45 | VA 4 7 d 3207000 46 | WA 2 0 d 2255000 47 | WV 4 6 d 1899000 48 | WI 1 5 d 3314000 49 | WY 3 2 d 269000 50 | -------------------------------------------------------------------------------- /elections/nyt-1952.d: -------------------------------------------------------------------------------- 1 | # 1952 Stevenson Eisenhower 2 | AL 6 6 d 3068000 3 | AZ 5 1 r 842000 4 | AR 5 4 d 1838000 5 | CA 4 0 r 11635000 6 | CO 4 2 r 1365000 7 | CT 3 9 r 2081000 8 | DE 4 9 r 341000 9 | FL 7 8 r 3157000 10 | GA 6 7 d 3584000 11 | ID 2 1 r 587000 12 | IL 2 5 r 8956000 13 | IN 3 5 r 4148000 14 | IA 3 4 r 2626000 15 | KS 5 3 r 1977000 16 | KY 4 5 d 2920000 17 | LA 6 4 d 2842000 18 | ME 0 10 r 915000 19 | MD 4 8 r 2500000 20 | MA 2 9 r 4650000 21 | MI 2 6 r 6650000 22 | MN 2 4 r 3030000 23 | MS 6 5 d 2152000 24 | MO 4 4 r 3972000 25 | MT 2 2 r 602000 26 | NE 4 3 r 1311000 27 | NV 3 1 r 181000 28 | NH 1 10 r 535000 29 | NJ 3 8 r 5125000 30 | NM 5 2 r 735000 31 | NY 2 8 r 15192000 32 | NC 5 7 d 4109000 33 | ND 2 3 r 608000 34 | OH 3 6 r 8275000 35 | OK 6 3 r 2219000 36 | OR 3 0 r 1582000 37 | PA 3 7 r 10503000 38 | RI 3 10 r 802000 39 | SC 5 6 d 2178000 40 | SD 3 3 r 651000 41 | TN 5 5 r 3352000 42 | TX 7 3 r 8314000 43 | UT 4 1 r 724000 44 | VT 1 9 r 375000 45 | VA 4 7 r 3504000 46 | WA 2 0 r 2448000 47 | WV 4 6 d 1957000 48 | WI 1 5 r 3469000 49 | WY 3 2 r 293000 50 | -------------------------------------------------------------------------------- /elections/nyt-1956.d: -------------------------------------------------------------------------------- 1 | # 1956 Stevenson Eisenhower 2 | AL 6 6 d 3071000 3 | AZ 5 1 r 1053000 4 | AR 5 4 d 1704000 5 | CA 4 0 r 13713000 6 | CO 4 2 r 1625000 7 | CT 3 9 r 2316000 8 | DE 4 9 r 408000 9 | FL 7 8 r 4047000 10 | GA 6 7 d 3701000 11 | ID 2 1 r 628000 12 | IL 2 5 r 9530000 13 | IN 3 5 r 4458000 14 | IA 3 4 r 2703000 15 | KS 5 3 r 2119000 16 | KY 4 5 r 2898000 17 | LA 6 4 r 3032000 18 | ME 0 10 r 938000 19 | MD 4 8 r 2811000 20 | MA 2 9 r 4891000 21 | MI 2 6 r 7467000 22 | MN 2 4 r 3240000 23 | MS 6 5 d 2086000 24 | MO 4 4 d 4163000 25 | MT 2 2 r 656000 26 | NE 4 3 r 1397000 27 | NV 3 1 r 250000 28 | NH 1 10 r 566000 29 | NJ 3 8 r 5615000 30 | NM 5 2 r 806000 31 | NY 2 8 r 16112000 32 | NC 5 7 d 4309000 33 | ND 2 3 r 613000 34 | OH 3 6 r 9207000 35 | OK 6 3 r 2273000 36 | OR 3 0 r 1698000 37 | PA 3 7 r 10972000 38 | RI 3 10 r 840000 39 | SC 5 6 d 2229000 40 | SD 3 3 r 670000 41 | TN 5 5 r 3415000 42 | TX 7 3 r 8830000 43 | UT 4 1 r 809000 44 | VT 1 9 r 377000 45 | VA 4 7 r 3722000 46 | WA 2 0 r 2668000 47 | WV 4 6 r 1857000 48 | WI 1 5 r 3742000 49 | WY 3 2 r 312000 50 | -------------------------------------------------------------------------------- /elections/nyt-1960.d: -------------------------------------------------------------------------------- 1 | # 1960 Kennedy Nixon 2 | AL 6 6 d 3267000 3 | AK 0 0 r 226000 4 | AZ 5 1 r 1302000 5 | AR 5 4 d 1786000 6 | CA 4 0 r 15717000 7 | CO 4 2 r 1754000 8 | CT 3 9 d 2535000 9 | DE 4 9 d 446000 10 | DC 5 8 d 764000 11 | FL 7 8 r 4952000 12 | GA 6 7 d 3943000 13 | HI 7 0 r 633000 14 | ID 2 1 r 667000 15 | IL 2 5 d 10081000 16 | IN 3 5 r 4662000 17 | IA 3 4 r 2758000 18 | KS 5 3 r 2179000 19 | KY 4 5 r 3038000 20 | LA 6 4 d 3257000 21 | ME 0 10 r 969000 22 | MD 4 8 r 3101000 23 | MA 2 9 d 5149000 24 | MI 2 6 d 7823000 25 | MN 2 4 d 3414000 26 | MS 6 5 d 2178000 27 | MO 4 4 d 4320000 28 | MT 2 2 r 675000 29 | NE 4 3 r 1411000 30 | NV 3 1 d 285000 31 | NH 1 10 r 607000 32 | NJ 3 8 d 6067000 33 | NM 5 2 d 951000 34 | NY 2 8 d 16782000 35 | NC 5 7 d 4556000 36 | ND 2 3 r 632000 37 | OH 3 6 r 9706000 38 | OK 6 3 r 2328000 39 | OR 3 0 r 1769000 40 | PA 3 7 d 11319000 41 | RI 3 10 d 859000 42 | SC 5 6 d 2383000 43 | SD 3 3 r 681000 44 | TN 5 5 r 3567000 45 | TX 7 3 d 9580000 46 | UT 4 1 r 891000 47 | VT 1 9 r 390000 48 | VA 4 7 r 3967000 49 | WA 2 0 r 2853000 50 | WV 4 6 d 1860000 51 | WI 1 5 r 3952000 52 | WY 3 2 r 330000 53 | -------------------------------------------------------------------------------- /elections/nyt-1964.d: -------------------------------------------------------------------------------- 1 | # 1964 Johnson Goldwater 2 | AL 6 6 r 3395000 3 | AK 0 0 d 263000 4 | AZ 5 1 r 1556000 5 | AR 5 4 d 1897000 6 | CA 4 0 d 18151000 7 | CO 4 2 d 1970000 8 | CT 3 9 d 2798000 9 | DE 4 9 d 497000 10 | DC 5 8 d 798000 11 | FL 7 8 d 5781000 12 | GA 6 7 r 4258000 13 | HI 7 0 d 700000 14 | ID 2 1 d 680000 15 | IL 2 5 d 10580000 16 | IN 3 5 d 4856000 17 | IA 3 4 d 2746000 18 | KS 5 3 d 2209000 19 | KY 4 5 d 3129000 20 | LA 6 4 r 3446000 21 | ME 0 10 d 993000 22 | MD 4 8 d 3492000 23 | MA 2 9 d 5448000 24 | MI 2 6 d 8187000 25 | MN 2 4 d 3558000 26 | MS 6 5 r 2241000 27 | MO 4 4 d 4442000 28 | MT 2 2 d 706000 29 | NE 4 3 d 1482000 30 | NV 3 1 d 426000 31 | NH 1 10 d 663000 32 | NJ 3 8 d 6660000 33 | NM 5 2 d 1006000 34 | NY 2 8 d 17589000 35 | NC 5 7 d 4802000 36 | ND 2 3 d 649000 37 | OH 3 6 d 10080000 38 | OK 6 3 d 2446000 39 | OR 3 0 d 1888000 40 | PA 3 7 d 11519000 41 | RI 3 10 d 885000 42 | SC 5 6 r 2475000 43 | SD 3 3 d 701000 44 | TN 5 5 d 3771000 45 | TX 7 3 d 10270000 46 | UT 4 1 d 978000 47 | VT 1 9 d 399000 48 | VA 4 7 d 4357000 49 | WA 2 0 d 2961000 50 | WV 4 6 d 1797000 51 | WI 1 5 d 4165000 52 | WY 3 2 d 339000 53 | -------------------------------------------------------------------------------- /elections/nyt-1968.d: -------------------------------------------------------------------------------- 1 | # 1968 Humphrey Nixon Wallace 2 | AL 6 6 i 3446000 3 | AK 0 0 r 285000 4 | AZ 5 1 r 1682000 5 | AR 5 4 i 1902000 6 | CA 4 0 r 19394000 7 | CO 4 2 r 2120000 8 | CT 3 9 d 2964000 9 | DE 4 9 r 534000 10 | DC 5 8 d 778000 11 | FL 7 8 r 6433000 12 | GA 6 7 i 4482000 13 | HI 7 0 d 734000 14 | ID 2 1 r 695000 15 | IL 2 5 r 10995000 16 | IN 3 5 r 5093000 17 | IA 3 4 r 2803000 18 | KS 5 3 r 2216000 19 | KY 4 5 r 3195000 20 | LA 6 4 i 3603000 21 | ME 0 10 d 994000 22 | MD 4 8 d 3815000 23 | MA 2 9 d 5618000 24 | MI 2 6 d 8696000 25 | MN 2 4 d 3703000 26 | MS 6 5 i 2219000 27 | MO 4 4 r 4568000 28 | MT 2 2 r 700000 29 | NE 4 3 r 1467000 30 | NV 3 1 r 464000 31 | NH 1 10 r 709000 32 | NJ 3 8 r 7005000 33 | NM 5 2 r 994000 34 | NY 2 8 d 18051000 35 | NC 5 7 r 5004000 36 | ND 2 3 r 621000 37 | OH 3 6 r 10516000 38 | OK 6 3 r 2503000 39 | OR 3 0 r 2004000 40 | PA 3 7 d 11741000 41 | RI 3 10 d 922000 42 | SC 5 6 r 2559000 43 | SD 3 3 r 669000 44 | TN 5 5 r 3878000 45 | TX 7 3 d 10819000 46 | UT 4 1 r 1029000 47 | VT 1 9 r 430000 48 | VA 4 7 r 4558000 49 | WA 2 0 d 3270000 50 | WV 4 6 d 1763000 51 | WI 1 5 r 4345000 52 | WY 3 2 r 324000 53 | -------------------------------------------------------------------------------- /elections/nyt-1972.d: -------------------------------------------------------------------------------- 1 | # 1972 McGovern Nixon 2 | AL 6 6 r 3539400 3 | AK 0 0 r 324464 4 | AZ 5 1 r 2008291 5 | AR 5 4 r 2018638 6 | CA 4 0 r 20585469 7 | CO 4 2 r 2404619 8 | CT 3 9 r 3068699 9 | DE 4 9 r 572913 10 | DC 5 8 d 742241 11 | FL 7 8 r 7511463 12 | GA 6 7 r 4809490 13 | HI 7 0 r 828331 14 | ID 2 1 r 763237 15 | IL 2 5 r 11251948 16 | IN 3 5 r 5302435 17 | IA 3 4 r 2860287 18 | KS 5 3 r 2256375 19 | KY 4 5 r 3335728 20 | LA 6 4 r 3761646 21 | ME 0 10 r 1034292 22 | MD 4 8 r 4073499 23 | MA 2 9 d 5760302 24 | MI 2 6 r 9028944 25 | MN 2 4 r 3869747 26 | MS 6 5 r 2307117 27 | MO 4 4 r 4758780 28 | MT 2 2 r 718732 29 | NE 4 3 r 1519013 30 | NV 3 1 r 546789 31 | NH 1 10 r 781107 32 | NJ 3 8 r 7335042 33 | NM 5 2 r 1078697 34 | NY 2 8 r 18339400 35 | NC 5 7 r 5301150 36 | ND 2 3 r 631119 37 | OH 3 6 r 10746993 38 | OK 6 3 r 2658646 39 | OR 3 0 r 2197297 40 | PA 3 7 r 11908233 41 | RI 3 10 r 974790 42 | SC 5 6 r 2719197 43 | SD 3 3 r 677234 44 | TN 5 5 r 4094611 45 | TX 7 3 r 11759148 46 | UT 4 1 r 1135449 47 | VT 1 9 r 463143 48 | VA 4 7 r 4824472 49 | WA 2 0 r 3447885 50 | WV 4 6 r 1797648 51 | WI 1 5 r 4502412 52 | WY 3 2 r 347345 53 | -------------------------------------------------------------------------------- /elections/nyt-1976.d: -------------------------------------------------------------------------------- 1 | # 1976 Carter Ford 2 | AL 6 6 d 3735139 3 | AK 0 0 r 400969 4 | AZ 5 1 r 2346157 5 | AR 5 4 d 2170161 6 | CA 4 0 r 21935909 7 | CO 4 2 r 2632306 8 | CT 3 9 r 3083335 9 | DE 4 9 d 590166 10 | DC 5 8 r 692295 11 | FL 7 8 d 8667379 12 | GA 6 7 d 5132812 13 | HI 7 0 d 904191 14 | ID 2 1 r 856983 15 | IL 2 5 r 11342853 16 | IN 3 5 r 5389088 17 | IA 3 4 r 2903082 18 | KS 5 3 r 2301001 19 | KY 4 5 d 3529257 20 | LA 6 4 d 3950605 21 | ME 0 10 r 1088412 22 | MD 4 8 d 4150539 23 | MA 2 9 d 5743672 24 | MI 2 6 d 9129205 25 | MN 2 4 d 3964680 26 | MS 6 5 d 2429756 27 | MO 4 4 d 4839029 28 | MT 2 2 r 757317 29 | NE 4 3 r 1550911 30 | NV 3 1 r 646975 31 | NH 1 10 r 845248 32 | NJ 3 8 r 7339745 33 | NM 5 2 r 1189295 34 | NY 2 8 d 17940541 35 | NC 5 7 d 5607964 36 | ND 2 3 r 645797 37 | OH 3 6 d 10752662 38 | OK 6 3 r 2826815 39 | OR 3 0 r 2378262 40 | PA 3 7 d 11897378 41 | RI 3 10 d 946089 42 | SC 5 6 d 2943657 43 | SD 3 3 r 686390 44 | TN 5 5 d 4346928 45 | TX 7 3 d 12904089 46 | UT 4 1 r 1274928 47 | VT 1 9 r 484928 48 | VA 4 7 r 5121863 49 | WA 2 0 r 3693610 50 | WV 4 6 d 1879503 51 | WI 1 5 d 4595904 52 | WY 3 2 r 396952 53 | -------------------------------------------------------------------------------- /elections/nyt-1980.d: -------------------------------------------------------------------------------- 1 | # 1980 Carter Reagan 2 | AL 6 6 r 3893888 3 | AK 0 0 r 401851 4 | AZ 5 1 r 2718215 5 | AR 5 4 r 2286435 6 | CA 4 0 r 23667902 7 | CO 4 2 r 2889964 8 | CT 3 9 r 3107576 9 | DE 4 9 r 594338 10 | DC 5 8 r 638333 11 | FL 7 8 r 9746324 12 | GA 6 7 d 5463105 13 | HI 7 0 d 964691 14 | ID 2 1 r 943935 15 | IL 2 5 r 11426518 16 | IN 3 5 r 5490224 17 | IA 3 4 r 2913808 18 | KS 5 3 r 2363679 19 | KY 4 5 r 3660777 20 | LA 6 4 r 4205900 21 | ME 0 10 r 1124660 22 | MD 4 8 d 4216975 23 | MA 2 9 r 5737037 24 | MI 2 6 r 9262078 25 | MN 2 4 d 4075970 26 | MS 6 5 r 2520638 27 | MO 4 4 r 4916686 28 | MT 2 2 r 786690 29 | NE 4 3 r 1569825 30 | NV 3 1 r 800493 31 | NH 1 10 r 920610 32 | NJ 3 8 r 7364823 33 | NM 5 2 r 1302894 34 | NY 2 8 r 17558072 35 | NC 5 7 r 5881766 36 | ND 2 3 r 652717 37 | OH 3 6 r 10797630 38 | OK 6 3 r 3025290 39 | OR 3 0 r 2633105 40 | PA 3 7 r 11863895 41 | RI 3 10 d 947154 42 | SC 5 6 r 3121820 43 | SD 3 3 r 690768 44 | TN 5 5 r 4591120 45 | TX 7 3 r 14229191 46 | UT 4 1 r 1461037 47 | VT 1 9 r 511456 48 | VA 4 7 r 5346818 49 | WA 2 0 r 4132156 50 | WV 4 6 d 1949644 51 | WI 1 5 r 4705767 52 | WY 3 2 r 469557 53 | -------------------------------------------------------------------------------- /elections/nyt-1984.d: -------------------------------------------------------------------------------- 1 | # 1984 Mondale Reagan 2 | AL 6 6 r 3951820 3 | AK 0 0 r 513702 4 | AZ 5 1 r 3067135 5 | AR 5 4 r 2319768 6 | CA 4 0 r 25844393 7 | CO 4 2 r 3169992 8 | CT 3 9 r 3180014 9 | DE 4 9 r 611565 10 | DC 5 8 d 633382 11 | FL 7 8 r 11039925 12 | GA 6 7 r 5834954 13 | HI 7 0 r 1027922 14 | ID 2 1 r 990839 15 | IL 2 5 r 11412132 16 | IN 3 5 r 5458322 17 | IA 3 4 r 2858618 18 | KS 5 3 r 2424086 19 | KY 4 5 r 3695453 20 | LA 6 4 r 4400477 21 | ME 0 10 r 1155635 22 | MD 4 8 r 4365243 23 | MA 2 9 r 5840773 24 | MI 2 6 r 9049452 25 | MN 2 4 d 4157706 26 | MS 6 5 r 2578051 27 | MO 4 4 r 4975278 28 | MT 2 2 r 820905 29 | NE 4 3 r 1588639 30 | NV 3 1 r 924922 31 | NH 1 10 r 976864 32 | NJ 3 8 r 7515473 33 | NM 5 2 r 1416717 34 | NY 2 8 r 17745684 35 | NC 5 7 r 6164006 36 | ND 2 3 r 680497 37 | OH 3 6 r 10737746 38 | OK 6 3 r 3285533 39 | OR 3 0 r 2666588 40 | PA 3 7 r 11815172 41 | RI 3 10 r 961894 42 | SC 5 6 r 3271868 43 | SD 3 3 r 697249 44 | TN 5 5 r 4686737 45 | TX 7 3 r 16007086 46 | UT 4 1 r 1622342 47 | VT 1 9 r 526660 48 | VA 4 7 r 5643870 49 | WA 2 0 r 4343656 50 | WV 4 6 r 1927697 51 | WI 1 5 r 4735563 52 | WY 3 2 r 504896 53 | -------------------------------------------------------------------------------- /elections/nyt-1988.d: -------------------------------------------------------------------------------- 1 | # 1988 Dukakis Bush 2 | AL 6 6 r 4023844 3 | AK 0 0 r 541983 4 | AZ 5 1 r 3535183 5 | AR 5 4 r 2342656 6 | CA 4 0 r 28464249 7 | CO 4 2 r 3262281 8 | CT 3 9 r 3271953 9 | DE 4 9 r 647622 10 | DC 5 8 d 630432 11 | FL 7 8 r 12306395 12 | GA 6 7 r 6316142 13 | HI 7 0 d 1079828 14 | ID 2 1 r 985664 15 | IL 2 5 r 11390183 16 | IN 3 5 r 5491735 17 | IA 3 4 d 2768388 18 | KS 5 3 r 2461996 19 | KY 4 5 r 3679999 20 | LA 6 4 r 4288863 21 | ME 0 10 r 1203840 22 | MD 4 8 r 4657904 23 | MA 2 9 d 5979982 24 | MI 2 6 r 9217998 25 | MN 2 4 d 4296166 26 | MS 6 5 r 2580352 27 | MO 4 4 r 5081736 28 | MT 2 2 r 800202 29 | NE 4 3 r 1571477 30 | NV 3 1 r 1075022 31 | NH 1 10 r 1082577 32 | NJ 3 8 r 7712333 33 | NM 5 2 r 1490337 34 | NY 2 8 d 17941309 35 | NC 5 7 r 6480594 36 | ND 2 3 r 655331 37 | OH 3 6 r 10798552 38 | OK 6 3 r 3167057 39 | OR 3 0 d 2741297 40 | PA 3 7 r 11845752 41 | RI 3 10 d 996408 42 | SC 5 6 r 3412096 43 | SD 3 3 r 698165 44 | TN 5 5 r 4822437 45 | TX 7 3 r 16667022 46 | UT 4 1 r 1689372 47 | VT 1 9 r 549763 48 | VA 4 7 r 6036909 49 | WA 2 0 d 4639893 50 | WV 4 6 d 1830215 51 | WI 1 5 d 4822388 52 | WY 3 2 r 465101 53 | -------------------------------------------------------------------------------- /elections/nyt-1992.d: -------------------------------------------------------------------------------- 1 | # 1992 Clinton Bush 2 | AL 6 6 r 4131068 3 | AK 0 0 r 587324 4 | AZ 5 1 r 3835485 5 | AR 5 4 d 2395446 6 | CA 4 0 d 30909406 7 | CO 4 2 d 3463145 8 | CT 3 9 d 3279272 9 | DE 4 9 d 689726 10 | DC 5 8 d 585813 11 | FL 7 8 r 13510073 12 | GA 6 7 d 6764524 13 | HI 7 0 d 1153020 14 | ID 2 1 r 1066203 15 | IL 2 5 d 11610447 16 | IN 3 5 r 5652211 17 | IA 3 4 d 2807782 18 | KS 5 3 r 2517791 19 | KY 4 5 d 3752639 20 | LA 6 4 d 4273036 21 | ME 0 10 d 1237103 22 | MD 4 8 d 4913625 23 | MA 2 9 d 5999148 24 | MI 2 6 d 9423247 25 | MN 2 4 d 4473959 26 | MS 6 5 r 2612726 27 | MO 4 4 d 5192748 28 | MT 2 2 d 823080 29 | NE 4 3 r 1603940 30 | NV 3 1 d 1331274 31 | NH 1 10 d 1113919 32 | NJ 3 8 d 7812654 33 | NM 5 2 d 1580966 34 | NY 2 8 d 18094825 35 | NC 5 7 r 6838230 36 | ND 2 3 r 635340 37 | OH 3 6 d 11004556 38 | OK 6 3 r 3206168 39 | OR 3 0 d 2974652 40 | PA 3 7 d 11989828 41 | RI 3 10 d 1002406 42 | SC 5 6 r 3595400 43 | SD 3 3 r 709462 44 | TN 5 5 d 5020680 45 | TX 7 3 r 17666863 46 | UT 4 1 r 1811373 47 | VT 1 9 d 571340 48 | VA 4 7 r 6389390 49 | WA 2 0 d 5146044 50 | WV 4 6 d 807171 51 | WI 1 5 d 4996925 52 | WY 3 2 r 464079 53 | -------------------------------------------------------------------------------- /elections/nyt-1996.d: -------------------------------------------------------------------------------- 1 | # 1996 Clinton Dole 2 | AL 6 6 r 4273084 3 | AK 0 0 r 607007 4 | AZ 5 1 d 4428068 5 | AR 5 4 d 2509793 6 | CA 4 0 d 31878234 7 | CO 4 2 r 3822676 8 | CT 3 9 d 3274238 9 | DE 4 9 d 724842 10 | DC 5 8 d 543213 11 | FL 7 8 d 14399985 12 | GA 6 7 r 7353225 13 | HI 7 0 d 1183723 14 | ID 2 1 r 1189251 15 | IL 2 5 d 11846544 16 | IN 3 5 r 5840528 17 | IA 3 4 d 2851792 18 | KS 5 3 r 2572150 19 | KY 4 5 d 3883723 20 | LA 6 4 d 4350579 21 | ME 0 10 d 1243316 22 | MD 4 8 d 5071604 23 | MA 2 9 d 6092352 24 | MI 2 6 d 9594350 25 | MN 2 4 d 4657758 26 | MS 6 5 r 2716115 27 | MO 4 4 d 5358692 28 | MT 2 2 r 879372 29 | NE 4 3 r 1652093 30 | NV 3 1 d 1603163 31 | NH 1 10 d 1162481 32 | NJ 3 8 d 7987933 33 | NM 5 2 d 1713407 34 | NY 2 8 d 18184774 35 | NC 5 7 r 7322870 36 | ND 2 3 r 643539 37 | OH 3 6 d 11172782 38 | OK 6 3 r 3300902 39 | OR 3 0 d 3203735 40 | PA 3 7 d 12056112 41 | RI 3 10 d 990225 42 | SC 5 6 r 3698746 43 | SD 3 3 r 732405 44 | TN 5 5 d 5319654 45 | TX 7 3 r 19128261 46 | UT 4 1 r 2000494 47 | VT 1 9 d 588654 48 | VA 4 7 r 6675451 49 | WA 2 0 d 5532939 50 | WV 4 6 d 1825754 51 | WI 1 5 d 5159795 52 | WY 3 2 r 481400 53 | -------------------------------------------------------------------------------- /elections/nyt-2000.d: -------------------------------------------------------------------------------- 1 | # 2000 Gore Bush 2 | AL 6 6 r 4452173 3 | AK 0 0 r 627963 4 | AZ 5 1 r 5160586 5 | AR 5 4 r 2678588 6 | CA 4 0 d 33987977 7 | CO 4 2 r 4326921 8 | CT 3 9 d 3411777 9 | DE 4 9 d 786373 10 | DC 5 8 d 572046 11 | FL 7 8 r 16047515 12 | GA 6 7 r 8227303 13 | HI 7 0 d 1213519 14 | ID 2 1 r 1299430 15 | IL 2 5 d 12434161 16 | IN 3 5 r 6091866 17 | IA 3 4 d 2929067 18 | KS 5 3 r 2693681 19 | KY 4 5 r 4049021 20 | LA 6 4 r 4471885 21 | ME 0 10 d 1277072 22 | MD 4 8 d 5311034 23 | MA 2 9 d 6361104 24 | MI 2 6 d 9952450 25 | MN 2 4 d 4933692 26 | MS 6 5 r 2848353 27 | MO 4 4 r 5607285 28 | MT 2 2 r 903773 29 | NE 4 3 r 1713820 30 | NV 3 1 r 2018741 31 | NH 1 10 r 1239882 32 | NJ 3 8 d 8430621 33 | NM 5 2 d 1821204 34 | NY 2 8 d 19001780 35 | NC 5 7 r 8081614 36 | ND 2 3 r 642023 37 | OH 3 6 r 11363543 38 | OK 6 3 r 3454365 39 | OR 3 0 d 3429708 40 | PA 3 7 d 12284173 41 | RI 3 10 d 1050268 42 | SC 5 6 r 4024223 43 | SD 3 3 r 755844 44 | TN 5 5 r 5703719 45 | TX 7 3 r 20944499 46 | UT 4 1 r 2244502 47 | VT 1 9 d 609618 48 | VA 4 7 r 7105817 49 | WA 2 0 d 5910512 50 | WV 4 6 r 1807021 51 | WI 1 5 d 5373999 52 | WY 3 2 r 494300 53 | -------------------------------------------------------------------------------- /elections/nyt-2004.d: -------------------------------------------------------------------------------- 1 | # 2004 Kerry Bush 2 | AL 6 6 r 4530729 3 | AK 0 0 r 659286 4 | AZ 5 1 r 5652404 5 | AR 5 4 r 2749686 6 | CA 4 0 d 35574576 7 | CO 4 2 r 4575013 8 | CT 3 9 d 3496094 9 | DE 4 9 d 830803 10 | DC 5 8 d 567754 11 | FL 7 8 r 17415318 12 | GA 6 7 r 8769252 13 | HI 7 0 d 1273569 14 | ID 2 1 r 1391802 15 | IL 2 5 d 12589773 16 | IN 3 5 r 6233007 17 | IA 3 4 r 2953635 18 | KS 5 3 r 2734373 19 | KY 4 5 r 4146101 20 | LA 6 4 r 4552238 21 | ME 0 10 d 1313688 22 | MD 4 8 d 5546935 23 | MA 2 9 d 6412281 24 | MI 2 6 d 10055315 25 | MN 2 4 d 5087713 26 | MS 6 5 r 2889010 27 | MO 4 4 r 5747741 28 | MT 2 2 r 930009 29 | NE 4 3 r 1749370 30 | NV 3 1 r 2346222 31 | NH 1 10 d 1290121 32 | NJ 3 8 d 8634561 33 | NM 5 2 r 1903808 34 | NY 2 8 d 19171567 35 | NC 5 7 r 8553152 36 | ND 2 3 r 644705 37 | OH 3 6 r 11452251 38 | OK 6 3 r 3525233 39 | OR 3 0 d 3569463 40 | PA 3 7 d 12410722 41 | RI 3 10 d 1074579 42 | SC 5 6 r 4210921 43 | SD 3 3 r 770396 44 | TN 5 5 r 5910809 45 | TX 7 3 r 22394023 46 | UT 4 1 r 2401580 47 | VT 1 9 d 619920 48 | VA 4 7 r 7475575 49 | WA 2 0 d 6178645 50 | WV 4 6 r 1816438 51 | WI 1 5 d 5514026 52 | WY 3 2 r 509106 53 | -------------------------------------------------------------------------------- /elections/nyt-2008.d: -------------------------------------------------------------------------------- 1 | # 2008 Obama McCain 2 | AL 6 6 r 4718206 3 | AK 0 0 r 687455 4 | AZ 5 1 r 6280362 5 | AR 5 4 r 2874554 6 | CA 4 0 d 36604337 7 | CO 4 2 d 4889730 8 | CT 3 9 d 3545579 9 | DE 4 9 d 883874 10 | DC 5 8 d 580236 11 | FL 7 8 d 18527305 12 | GA 6 7 r 9504843 13 | HI 7 0 d 1332213 14 | ID 2 1 r 1534320 15 | IL 2 5 d 12747038 16 | IN 3 5 d 6424806 17 | IA 3 4 d 3016734 18 | KS 5 3 r 2808076 19 | KY 4 5 r 4289878 20 | LA 6 4 r 4435586 21 | ME 0 10 d 1330509 22 | MD 4 8 d 5684965 23 | MA 2 9 d 6468967 24 | MI 2 6 d 9946889 25 | MN 2 4 d 5247018 26 | MS 6 5 r 2947806 27 | MO 4 4 r 5923916 28 | MT 2 2 r 976415 29 | NE 4 3 r 1796378 30 | NV 3 1 d 2653630 31 | NH 1 10 d 1315906 32 | NJ 3 8 d 8711090 33 | NM 5 2 d 2010662 34 | NY 2 8 d 19212436 35 | NC 5 7 d 9309449 36 | ND 2 3 r 657569 37 | OH 3 6 d 11515391 38 | OK 6 3 r 3668976 39 | OR 3 0 d 3768748 40 | PA 3 7 d 12612285 41 | RI 3 10 d 1055003 42 | SC 5 6 r 4528996 43 | SD 3 3 r 799124 44 | TN 5 5 r 6247411 45 | TX 7 3 r 24309039 46 | UT 4 1 r 2663029 47 | VT 1 9 d 624151 48 | VA 4 7 d 7833496 49 | WA 2 0 d 6562231 50 | WV 4 6 r 1840310 51 | WI 1 5 d 5640996 52 | WY 3 2 r 546043 53 | -------------------------------------------------------------------------------- /elections/nyt-2012.d: -------------------------------------------------------------------------------- 1 | # 2012 Obama Romney 2 | AL 6 6 r 4815588 3 | AK 0 0 r 730443 4 | AZ 5 1 d 6554978 5 | AR 5 4 r 2952164 6 | CA 4 0 d 37948800 7 | CO 4 2 d 5192647 8 | CT 3 9 d 3594547 9 | DE 4 9 d 915179 10 | DC 5 8 d 634924 11 | FL 7 8 d 19297822 12 | GA 6 7 r 9901430 13 | HI 7 0 d 1394804 14 | ID 2 1 r 1595324 15 | IL 2 5 d 12882510 16 | IN 3 5 r 6537703 17 | IA 3 4 r 3076190 18 | KS 5 3 r 2885257 19 | KY 4 5 r 4386346 20 | LA 6 4 r 4600972 21 | ME 0 10 d 1327729 22 | MD 4 8 d 5886992 23 | MA 2 9 d 6663005 24 | MI 2 6 d 9897145 25 | MN 2 4 d 5376643 26 | MS 6 5 r 2983816 27 | MO 4 4 r 6024367 28 | MT 2 2 r 1003783 29 | NE 4 3 r 1853303 30 | NV 3 1 d 2743996 31 | NH 1 10 d 1324232 32 | NJ 3 8 d 8844942 33 | NM 5 2 d 2087309 34 | NY 2 8 d 19572932 35 | NC 5 7 r 9749476 36 | ND 2 3 r 701176 37 | OH 3 6 d 11548923 38 | OK 6 3 r 3818814 39 | OR 3 0 d 3899001 40 | PA 3 7 d 12767118 41 | RI 3 10 d 1054621 42 | SC 5 6 r 4717354 43 | SD 3 3 r 833566 44 | TN 5 5 r 6453898 45 | TX 7 3 r 26084481 46 | UT 4 1 r 2853375 47 | VT 1 9 d 626090 48 | VA 4 7 d 8185080 49 | WA 2 0 d 6897058 50 | WV 4 6 r 1856872 51 | WI 1 5 d 5719960 52 | WY 3 2 r 576305 53 | -------------------------------------------------------------------------------- /elections/nyt-2016.d: -------------------------------------------------------------------------------- 1 | # 2016 Clinton Trump 2 | AL 6 6 r 4863525 3 | AK 0 0 r 741456 4 | AZ 5 1 r 6941072 5 | AR 5 4 r 2989918 6 | CA 4 0 d 39167117 7 | CO 4 2 r 5539215 8 | CT 3 9 d 3578141 9 | DE 4 9 d 948921 10 | DC 5 8 d 685815 11 | FL 7 8 r 20613477 12 | GA 6 7 r 10301890 13 | HI 7 0 d 1427559 14 | ID 2 1 r 1682380 15 | IL 2 5 d 12820527 16 | IN 3 5 r 6634304 17 | IA 3 4 r 3131371 18 | KS 5 3 r 2910844 19 | KY 4 5 r 4438182 20 | LA 6 4 r 4678135 21 | ME 0 10 d 1331317 22 | MD 4 8 d 6003323 23 | MA 2 9 d 6823608 24 | MI 2 6 r 9950571 25 | MN 2 4 d 5522744 26 | MS 6 5 r 2987938 27 | MO 4 4 r 6087135 28 | MT 2 2 d 1040859 29 | NE 4 3 r 1905616 30 | NV 3 1 d 2917563 31 | NH 1 10 d 1342307 32 | NJ 3 8 d 8870827 33 | NM 5 2 d 2091630 34 | NY 2 8 d 19633428 35 | NC 5 7 r 10154788 36 | ND 2 3 r 754434 37 | OH 3 6 r 11634370 38 | OK 6 3 r 3926331 39 | OR 3 0 d 4089976 40 | PA 3 7 r 12782275 41 | RI 3 10 d 1056770 42 | SC 5 6 r 4957968 43 | SD 3 3 r 862996 44 | TN 5 5 r 6646010 45 | TX 7 3 r 27914410 46 | UT 4 1 r 3041868 47 | VT 1 9 d 623657 48 | VA 4 7 d 8410106 49 | WA 2 0 d 7294771 50 | WV 4 6 r 1831023 51 | WI 1 5 r 5772628 52 | WY 3 2 r 584215 53 | -------------------------------------------------------------------------------- /elections/nyt-2020.d: -------------------------------------------------------------------------------- 1 | # 2020 Biden Trump 2 | AL 6 6 r 4903185 3 | AK 0 0 r 731545 4 | AZ 5 1 d 7278717 5 | AR 5 4 r 3017804 6 | CA 4 0 d 39512223 7 | CO 4 2 d 5758736 8 | CT 3 9 d 3565287 9 | DE 4 9 d 973764 10 | DC 5 8 d 705749 11 | FL 7 8 r 21477737 12 | GA 6 7 d 10617423 13 | HI 7 0 d 1415872 14 | ID 2 1 r 1787065 15 | IL 2 5 d 12671821 16 | IN 3 5 r 6732219 17 | IA 3 4 r 3155070 18 | KS 5 3 r 2913314 19 | KY 4 5 r 4467673 20 | LA 6 4 r 4648794 21 | ME 0 10 d 1344212 22 | MD 4 8 d 6045680 23 | MA 2 9 d 6892503 24 | MI 2 6 d 9986857 25 | MN 2 4 d 5639632 26 | MS 6 5 r 2976149 27 | MO 4 4 r 6137428 28 | MT 2 2 r 1068778 29 | NE 4 3 r 1934408 30 | NV 3 1 d 3080156 31 | NH 1 10 d 1359711 32 | NJ 3 8 d 8882190 33 | NM 5 2 d 2096829 34 | NY 2 8 d 19453561 35 | NC 5 7 r 10488084 36 | ND 2 3 r 762062 37 | OH 3 6 r 11689100 38 | OK 6 3 r 3956971 39 | OR 3 0 d 4217737 40 | PA 3 7 d 12801989 41 | RI 3 10 d 1059361 42 | SC 5 6 r 5148714 43 | SD 3 3 r 884659 44 | TN 5 5 r 6829174 45 | TX 7 3 r 28995881 46 | UT 4 1 r 3205958 47 | VT 1 9 d 623989 48 | VA 4 7 d 8535519 49 | WA 2 0 d 7614893 50 | WV 4 6 r 1792147 51 | WI 1 5 d 5822434 52 | WY 3 2 r 578759 53 | -------------------------------------------------------------------------------- /elections/nyt-2024.d: -------------------------------------------------------------------------------- 1 | # 2024 Harris Trump 2 | AL 6 6 r 4903185 3 | AK 0 0 r 731545 4 | AZ 5 1 r 7278717 5 | AR 5 4 r 3017804 6 | CA 4 0 d 39512223 7 | CO 4 2 d 5758736 8 | CT 3 9 d 3565287 9 | DE 4 9 d 973764 10 | DC 5 8 d 705749 11 | FL 7 8 r 21477737 12 | GA 6 7 r 10617423 13 | HI 7 0 d 1415872 14 | ID 2 1 r 1787065 15 | IL 2 5 d 12671821 16 | IN 3 5 r 6732219 17 | IA 3 4 r 3155070 18 | KS 5 3 r 2913314 19 | KY 4 5 r 4467673 20 | LA 6 4 r 4648794 21 | ME 0 10 d 1344212 22 | MD 4 8 d 6045680 23 | MA 2 9 d 6892503 24 | MI 2 6 r 9986857 25 | MN 2 4 d 5639632 26 | MS 6 5 r 2976149 27 | MO 4 4 r 6137428 28 | MT 2 2 r 1068778 29 | NE 4 3 r 1934408 30 | NV 3 1 r 3080156 31 | NH 1 10 d 1359711 32 | NJ 3 8 d 8882190 33 | NM 5 2 d 2096829 34 | NY 2 8 d 19453561 35 | NC 5 7 r 10488084 36 | ND 2 3 r 762062 37 | OH 3 6 r 11689100 38 | OK 6 3 r 3956971 39 | OR 3 0 d 4217737 40 | PA 3 7 r 12801989 41 | RI 3 10 d 1059361 42 | SC 5 6 r 5148714 43 | SD 3 3 r 884659 44 | TN 5 5 r 6829174 45 | TX 7 3 r 28995881 46 | UT 4 1 r 3205958 47 | VT 1 9 d 623989 48 | VA 4 7 d 8535519 49 | WA 2 0 d 7614893 50 | WV 4 6 r 1792147 51 | WI 1 5 r 5822434 52 | WY 3 2 r 578759 53 | -------------------------------------------------------------------------------- /elections/nyt-layout.d: -------------------------------------------------------------------------------- 1 | # NYT Layout 2 | AL 6 6 i 3 | AK 0 0 i 4 | AZ 5 1 i 5 | AR 5 4 i 6 | CA 4 0 i 7 | CO 4 2 i 8 | CT 3 9 i 9 | DE 4 9 i 10 | DC 5 8 i 11 | FL 7 8 i 12 | GA 6 7 i 13 | HI 7 0 i 14 | ID 2 1 i 15 | IL 2 5 i 16 | IN 3 5 i 17 | IA 3 4 i 18 | KS 5 3 i 19 | KY 4 5 i 20 | LA 6 4 i 21 | ME 0 10 i 22 | MD 4 8 i 23 | MA 2 9 i 24 | MI 2 6 i 25 | MN 2 4 i 26 | MS 6 5 i 27 | MO 4 4 i 28 | MT 2 2 i 29 | NE 4 3 i 30 | NV 3 1 i 31 | NH 1 10 i 32 | NJ 3 8 i 33 | NM 5 2 i 34 | NY 2 8 i 35 | NC 5 7 i 36 | ND 2 3 i 37 | OH 3 6 i 38 | OK 6 3 i 39 | OR 3 0 i 40 | PA 3 7 i 41 | RI 3 10 i 42 | SC 5 6 i 43 | SD 3 3 i 44 | TN 5 5 i 45 | TX 7 3 i 46 | UT 4 1 i 47 | VT 1 9 i 48 | VA 4 7 i 49 | WA 2 0 i 50 | WV 4 6 i 51 | WI 1 5 i 52 | WY 3 2 i 53 | -------------------------------------------------------------------------------- /elections/stateface.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/elections/stateface.ttf -------------------------------------------------------------------------------- /flowers/README.md: -------------------------------------------------------------------------------- 1 | # flowers (transformation test) 2 | ![flowers](flowers.png) 3 | -------------------------------------------------------------------------------- /flowers/flowers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/flowers/flowers.png -------------------------------------------------------------------------------- /flowers/main.go: -------------------------------------------------------------------------------- 1 | // flowers demonstrated transforms with "flowers" 2 | package main 3 | 4 | import ( 5 | "flag" 6 | "image/color" 7 | "math" 8 | "os" 9 | 10 | "gioui.org/app" 11 | "gioui.org/unit" 12 | "github.com/ajstarks/giocanvas" 13 | ) 14 | 15 | func petals(canvas *giocanvas.Canvas, x, y, w, h float32, fill color.NRGBA) { 16 | var a float32 17 | for a = 0; a < math.Pi*2; a += math.Pi / 9 { 18 | stack := canvas.Rotate(x, y, a) 19 | canvas.Ellipse(x, y, w, h, fill) 20 | giocanvas.EndTransform(stack) 21 | } 22 | } 23 | 24 | func flower(width, height float32) { 25 | red := color.NRGBA{128, 0, 0, 100} 26 | blue := color.NRGBA{0, 0, 128, 100} 27 | green := color.NRGBA{0, 128, 0, 100} 28 | orange := giocanvas.ColorLookup("orange") 29 | bgcolor := giocanvas.ColorLookup("linen") 30 | w := new(app.Window) 31 | w.Option(app.Title("flowers"), app.Size(unit.Dp(width), unit.Dp(height))) 32 | for { 33 | e := w.Event() 34 | switch e := e.(type) { 35 | case app.FrameEvent: 36 | canvas := giocanvas.NewCanvas(float32(e.Size.X), float32(e.Size.Y), app.FrameEvent{}) 37 | canvas.Background(bgcolor) 38 | petals(canvas, 10, 90, 5, 1, red) 39 | petals(canvas, 25, 75, 10, 1.5, green) 40 | petals(canvas, 50, 50, 15, 3.0, blue) 41 | petals(canvas, 80, 20, 20, 4.5, orange) 42 | e.Frame(canvas.Context.Ops) 43 | case app.DestroyEvent: 44 | os.Exit(0) 45 | } 46 | } 47 | } 48 | 49 | func main() { 50 | var cw, ch int 51 | flag.IntVar(&cw, "width", 1000, "canvas width") 52 | flag.IntVar(&ch, "height", 1000, "canvas height") 53 | flag.Parse() 54 | go flower(float32(cw), float32(ch)) 55 | app.Main() 56 | } 57 | -------------------------------------------------------------------------------- /fox/ajs.pal: -------------------------------------------------------------------------------- 1 | ajstarks #aa0000 #aaaaaa #000000 #ffffff 2 | autumn-decay #313638 #574729 #975330 #c57938 #ffad3b #ffe596 3 | rainbow #ff0000 #ffa500 #ffff00 #008000 #0000ff #4b0082 #ee82ee 4 | polished-gold #000000 #361c1b #754232 #cd894a #e6b983 #fff8bc #ffffff #2d2433 #4f4254 #b092a7 5 | funk-it-up #e4ffff #e63410 #a23737 #ffec40 #81913b #26f675 #4c714e #40ebda #394e4e #0a0a0a 6 | grayscale #111111 #222222 #333333 #444444 #555555 #666666 #777777 #888888 #999999 #aaaaaa #bbbbbb #cccccc #dddddd #eeeeee 7 | -------------------------------------------------------------------------------- /fox/ajstarks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/fox/ajstarks.png -------------------------------------------------------------------------------- /fox/default.pal: -------------------------------------------------------------------------------- 1 | kirokaze-gameboy #332c50 #46878f #94e344 #e2f3e4 2 | ice-cream-gb #7c3f58 #eb6b6f #f9a875 #fff6d3 3 | 2-bit-demichrome #211e20 #555568 #a0a08b #e9efec 4 | mist-gb #2d1b00 #1e606e #5ab9a8 #c4f0c2 5 | rustic-gb #2c2137 #764462 #edb4a1 #a96868 6 | 2-bit-grayscale #000000 #676767 #b6b6b6 #ffffff 7 | hollow #0f0f1b #565a75 #c6b7be #fafbf6 8 | ayy4 #00303b #ff7777 #ffce96 #f1f2da 9 | nintendo-gameboy-bgb #081820 #346856 #88c070 #e0f8d0 10 | red-brick #eff9d6 #ba5044 #7a1c4b #1b0326 11 | nostalgia #d0d058 #a0a840 #708028 #405010 12 | spacehaze #f8e3c4 #cc3495 #6b1fb1 #0b0630 13 | moonlight-gb #0f052d #203671 #36868f #5fc75d 14 | links-awakening-sgb #5a3921 #6b8c42 #7bc67b #ffffb5 15 | arq4 #ffffff #6772a9 #3a3277 #000000 16 | blk-aqu4 #002b59 #005f8c #00b9be #9ff4e5 17 | pokemon-sgb #181010 #84739c #f7b58c #ffefff 18 | nintendo-super-gameboy #331e50 #a63725 #d68e49 #f7e7c6 19 | blu-scribbles #051833 #0a4f66 #0f998e #12cc7f 20 | kankei4 #ffffff #f42e1f #2f256b #060608 21 | dark-mode #212121 #454545 #787878 #a8a5a5 22 | pen-n-paper #e4dbba #a4929a #4f3a54 #260d1c 23 | -------------------------------------------------------------------------------- /fox/hot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/fox/hot.png -------------------------------------------------------------------------------- /fox/pen-n-paper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/fox/pen-n-paper.png -------------------------------------------------------------------------------- /fox/rainbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/fox/rainbox.png -------------------------------------------------------------------------------- /gcdeck/README.md: -------------------------------------------------------------------------------- 1 | # gcdeck 2 | 3 | Interactive deck client. 4 | 5 | gcdeck shows slide decks formatted in the [```deck``` markup language](https://github.com/ajstarks/deck/blob/master/README.md). 6 | 7 | Markup is usually generated with the [```decksh``` command](https://github.com/ajstarks/decksh/blob/master/README.md) 8 | 9 | 10 | ```gcdeck t.xml``` makes: 11 | 12 | 13 | ![gcdeck](gcdeck.png) 14 | 15 | 16 | ```decksh test.dsh | gcdeck - ``` 17 | 18 | 19 | ![gcdeck](gcdeck0.png) 20 | ![gcdeck](gcdeck1.png) 21 | 22 | ## Keyboard commands 23 | 24 | | Command | Action | 25 | | -------------------------------------------- | --------------- | 26 | | A, Ctrl-A, ^, 1, Home | first slide | 27 | | E, Crtl-E, $, End | last slide | 28 | | K, F, Ctrl-F, Ctrl-N, Space, Enter | next slide | 29 | | J, B, Ctrl-B, Ctrl-P, Shift-Space, Shift-Enter| previous slide | 30 | | G | toggle a grid | 31 | | Q, ESC | Quit | 32 | 33 | ```gcdeck``` notices when the input file changes, and refreshes on the next interaction. 34 | 35 | ## Mouse interactions 36 | 37 | | Button | Action | 38 | | ------------- | --------------- | 39 | | Left | next slide | 40 | | Right | previous slide | 41 | | Middle | first slide | 42 | | Wheel-Forward | next slide | 43 | | Wheel-Back | previous slide | 44 | 45 | ## Options 46 | 47 | ``` 48 | gcdeck [options] file ("-" for standard input) 49 | 50 | Options: 51 | 52 | -page int 53 | initial page (default 1) 54 | -pagesize string 55 | pagesize: w,h, or one of: Letter, Legal, Tabloid, A3, A4, A5, ArchA, 4R, Index, Widescreen (default "Letter") 56 | -title string 57 | slide title 58 | ``` -------------------------------------------------------------------------------- /gcdeck/cloudy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/gcdeck/cloudy.jpg -------------------------------------------------------------------------------- /gcdeck/earth.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/gcdeck/earth.jpg -------------------------------------------------------------------------------- /gcdeck/follow.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/gcdeck/follow.jpg -------------------------------------------------------------------------------- /gcdeck/gcdeck.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/gcdeck/gcdeck.png -------------------------------------------------------------------------------- /gcdeck/gcdeck0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/gcdeck/gcdeck0.png -------------------------------------------------------------------------------- /gcdeck/gcdeck1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/gcdeck/gcdeck1.png -------------------------------------------------------------------------------- /gcdeck/hw: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import "fmt" 4 | 5 | func main() { 6 | fmt.Println("hello, world") 7 | } 8 | -------------------------------------------------------------------------------- /gcdeck/pct.d: -------------------------------------------------------------------------------- 1 | Male 50.4 blue 2 | Female 49.6 pink 3 | -------------------------------------------------------------------------------- /gcdeck/qb.txt: -------------------------------------------------------------------------------- 1 | The quick brown fox 2 | jumped over the 3 | lazy dog. 4 | -------------------------------------------------------------------------------- /gcdeck/rand.d: -------------------------------------------------------------------------------- 1 | 0 37 2 | 1 58 3 | 2 78 4 | 3 53 5 | 4 16 6 | 5 28 7 | 6 93 8 | 7 14 9 | 8 15 10 | 9 4 11 | 10 54 12 | 11 57 13 | 12 1 14 | 13 4 15 | 14 98 16 | 15 54 17 | 16 7 18 | 17 53 19 | 18 43 20 | 19 71 21 | 20 70 22 | 21 24 23 | 22 76 24 | 23 13 25 | 24 27 26 | 25 45 27 | 26 18 28 | 27 73 29 | 28 40 30 | 29 30 31 | 30 87 32 | 31 36 33 | 32 74 34 | 33 4 35 | 34 93 36 | 35 36 37 | 36 7 38 | 37 81 39 | 38 18 40 | 39 87 41 | -------------------------------------------------------------------------------- /gcdeck/scale.dsh: -------------------------------------------------------------------------------- 1 | deck 2 | canvas 2000 2000 3 | slide 4 | image "earth.jpg" 50 50 1000 1000 5 | ctext "full" 50 20 2 6 | eslide 7 | 8 | slide 9 | image "earth.jpg" 50 50 100 100 10 10 | ctext "xy scale" 50 20 2 11 | eslide 12 | 13 | slide 14 | image "earth.jpg" 50 50 1000 1000 30 15 | ctext "full scale 30" 50 20 2 16 | eslide 17 | slide 18 | image "earth.jpg" 50 50 30 0 19 | ctext "autoscale 30" 50 20 2 20 | eslide 21 | slide 22 | image "earth.jpg" 50 50 40 0 23 | ctext "autoscale 40" 50 20 2 24 | eslide 25 | slide 26 | image "earth.jpg" 50 50 50 0 27 | ctext "autoscale 50" 50 20 2 28 | eslide 29 | edeck -------------------------------------------------------------------------------- /gcdeck/scale.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | full 6 | 7 | 8 | 9 | xy scale 10 | 11 | 12 | 13 | full scale 30 14 | 15 | 16 | 17 | autoscale 30 18 | 19 | 20 | 21 | autoscale 40 22 | 23 | 24 | 25 | autoscale 50 26 | 27 | 28 | -------------------------------------------------------------------------------- /gcdeck/t.dsh: -------------------------------------------------------------------------------- 1 | deck 2 | slide 3 | poem="For, lo, the winter is past the rain is over and gone. The flowers appear on the earth, the time for the singing of birds is come." 4 | 5 | 6 | include "include.dsh" 7 | 8 | square 25 90 10 "green" 9 | rect 50 90 30 10 "red" 10 | circle 75 90 10 "blue" 11 | 12 | textfile "qb.txt" 75 70 2 13 | textcode "hw" 35 75 25 1 14 | 15 | 16 | hline 80 50 10 1 "red" 17 | vline 80 40 10 1 "blue" 18 | line 80 40 90 30 1 "orange" 19 | vline 90 30 20 1 "green" 20 | 21 | cimage "cloudy.jpg" "Clouds" 35 30 640 480 25 22 | image "follow.jpg" 65 30 640 480 25 23 | 24 | bottom=5 25 | ctext "hello" 50 bottom 5 26 | text "hello" 20 bottom 5 "sans" "red" 27 | etext "hello" 80 bottom 5 "sans" "blue" 28 | textblock poem 30 55 40 2 29 | 30 | 31 | circle 50 bottom 3 "maroon" 20 32 | circle 20 bottom 3 "maroon" 20 33 | circle 80 bottom 3 "maroon" 20 34 | 35 | bx=10 36 | by=90 37 | bs=2 38 | vline 10 0 100 0.1 "red" 50 39 | list bx by bs 40 | li "one" 41 | li "two" 42 | li "three" 43 | li "four" 44 | elist 45 | 46 | by -=20 47 | blist bx by bs 48 | li "one" 49 | li "two" 50 | li "three" 51 | li "four" 52 | elist 53 | 54 | by -=20 55 | nlist bx by bs 56 | li "one" 57 | li "two" 58 | li "three" 59 | li "four" 60 | elist 61 | 62 | by -=20 63 | clist bx by bs 64 | li "one" 65 | li "two" 66 | li "three" 67 | li "four" 68 | elist 69 | 70 | 71 | eslide 72 | edeck -------------------------------------------------------------------------------- /gcdeck/t.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | I am included 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | hello 16 | hello 17 | hello 18 | For, lo, the winter is past the rain is over and gone. The flowers appear on the earth, the time for the singing of birds is come. 19 | 20 | 21 | 22 | 23 | 24 |
  • one
  • 25 |
  • two
  • 26 |
  • three
  • 27 |
  • four
  • 28 |
    29 | 30 |
  • one
  • 31 |
  • two
  • 32 |
  • three
  • 33 |
  • four
  • 34 |
    35 | 36 |
  • one
  • 37 |
  • two
  • 38 |
  • three
  • 39 |
  • four
  • 40 |
    41 | 42 |
  • one
  • 43 |
  • two
  • 44 |
  • three
  • 45 |
  • four
  • 46 |
    47 |
    48 |
    49 | -------------------------------------------------------------------------------- /gcdeck/test.dsh: -------------------------------------------------------------------------------- 1 | deck 2 | mx=50 3 | my=50 4 | ts=10 5 | slide 6 | ctext "First" mx 80 ts 7 | ctext "Serif" 20 40 5 "serif" "red" 8 | ctext "Sans" mx 40 5 "sans" "green" 9 | ctext "Mono" 80 40 5 "mono" "blue" 10 | eslide 11 | ts+=2 12 | 13 | slide "hsv(42,100,100)" 14 | ctext "Slide 2" mx my ts 15 | eslide 16 | ts+=2 17 | 18 | slide "hsv(35,100,100)" 19 | ctext "Slide 3" mx my ts 20 | eslide 21 | ts+=2 22 | 23 | slide "hsv(28,100,100)" 24 | ctext "Slide 4" mx my ts 25 | eslide 26 | ts+=2 27 | 28 | slide "hsv(21,100,100)" 29 | ctext "Slide 5" mx my ts 30 | eslide 31 | 32 | slide "hsv(14,100,100)" 33 | ctext "Slide 6" mx my ts 34 | eslide 35 | ts+=2 36 | 37 | slide "hsv(7,100,100)" 38 | ctext "Slide 7" mx my ts 39 | eslide 40 | ts+=2 41 | 42 | opts="-fulldeck=f -xlabel=5 -yaxis -line -yrange=0,100,20 -grid -val -bar -val=f -min=0 -max=100 -vcolor=maroon -datacond=20,50,orange" 43 | slide 44 | dchart opts rand.d 45 | etext "Slide 8" 95 5 2 46 | eslide 47 | 48 | slide 49 | for x=5 95 5 50 | circle x 50 4 "maroon" x 51 | efor 52 | for y=5 95 5 53 | circle 50 y 4 "darkblue" y 54 | efor 55 | etext "Slide 9" 95 5 2 56 | eslide 57 | 58 | slide 59 | dchart -val=f -pmap -top 50 -pwidth 10 pct.d 60 | etext "Slide 10" 95 5 2 61 | eslide 62 | 63 | slide "black" "white" 64 | image "earth.jpg" mx my 25 0 65 | line 50 80 50 70 0.1 "white" 66 | ctext "you are here" 50 82 4 67 | eslide 68 | edeck 69 | -------------------------------------------------------------------------------- /gcdeck/test.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/gcdeck/test.pdf -------------------------------------------------------------------------------- /gchart/allcharts: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | opts="-zero=f -h=600 -xlabel=10 -yrange=-1,1,0.25 -yfmt=%0.2f -grid" 3 | ./gchart $opts -area sin.d & 4 | ./gchart $opts -bar sin.d & 5 | ./gchart $opts -line sin.d & 6 | ./gchart $opts -scatter sin.d & 7 | ./gchart $opts -area -line sin.d & 8 | ./gchart $opts -area -bar -line -scatter -frame 20 sin.d & 9 | 10 | ./gchart -xlabel=5 -scatter -vfmt=%.2f -yrange=0,100,10 -grid rand.d & 11 | ./gchart -textsize=2 -dot -dotsize=1 data.d & 12 | 13 | opts="-ls=5 -textsize=3 -yrange=0,100,20 -grid" 14 | ./gchart $opts -hbar -barwidth=2 data.d & 15 | ./gchart $opts -wbar data.d & 16 | 17 | ./gchart -ty 20 -top 75 -left 15 -piesize 30 -pie browser.d & 18 | ./gchart -left 30 -dotsize 5 -lego pop.d & 19 | -------------------------------------------------------------------------------- /gchart/allcharts-x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/gchart/allcharts-x.png -------------------------------------------------------------------------------- /gchart/allcharts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/gchart/allcharts.png -------------------------------------------------------------------------------- /gchart/area-x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/gchart/area-x.png -------------------------------------------------------------------------------- /gchart/area.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/gchart/area.png -------------------------------------------------------------------------------- /gchart/bar-x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/gchart/bar-x.png -------------------------------------------------------------------------------- /gchart/bar-z.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/gchart/bar-z.png -------------------------------------------------------------------------------- /gchart/bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/gchart/bar.png -------------------------------------------------------------------------------- /gchart/br.d: -------------------------------------------------------------------------------- 1 | # Browser Market Share June 2020 2 | Chrome 66 rgb(211,57,53) 3 | Safari 18 rgb(13,107,202) 4 | Other 10 rgb(150,150,150) 5 | Firefox 4 rgb(228,158,21) 6 | IE/Edge 2 rgb(0,128,0) 7 | -------------------------------------------------------------------------------- /gchart/browser.d: -------------------------------------------------------------------------------- 1 | # Browser Market Share February 2025 2 | Chrome 66.63 rgb(211,57,53) 3 | Safari 17.73 rgb(13,107,202) 4 | Other 7.58 rgb(150,150,150) 5 | Edge 5.39 rgb(0,128,0) 6 | Firefox 2.67 rgb(228,158,21) 7 | -------------------------------------------------------------------------------- /gchart/c19.d: -------------------------------------------------------------------------------- 1 | # COVID-19 Confirmed Cases 2 | Feb 4 23892 3 | Feb 5 27635 4 | Feb 6 30794 5 | Feb 7 34391 6 | Feb 8 37120 7 | Feb 9 40150 8 | Feb 10 42762 9 | Feb 11 44802 10 | Feb 12 45221 11 | Feb 13 60368 12 | Feb 14 66885 13 | Feb 15 69030 14 | Feb 16 71224 15 | Feb 17 73258 16 | Feb 18 75136 17 | Feb 19 75639 18 | Feb 20 76197 19 | Feb 21 76819 20 | Feb 22 78572 21 | Feb 23 78958 22 | Feb 24 79561 23 | Feb 25 80406 24 | Feb 26 81388 25 | Feb 27 82746 26 | Feb 28 84112 27 | Feb 29 86011 28 | Mar 1 88369 29 | Mar 2 90306 30 | Mar 3 92840 31 | Mar 4 95120 32 | Mar 5 97886 33 | Mar 6 101801 34 | Mar 7 105847 35 | Mar 8 109821 36 | Mar 9 113590 37 | Mar 10 118620 38 | Mar 11 125875 39 | Mar 12 128352 40 | Mar 13 145205 41 | Mar 14 156101 42 | Mar 15 167454 43 | Mar 16 181574 44 | Mar 17 197102 45 | Mar 18 214821 46 | Mar 19 242500 47 | Mar 20 272035 48 | Mar 21 304396 49 | Mar 22 336953 50 | Mar 23 378235 51 | Mar 24 418045 52 | Mar 25 467653 53 | Mar 26 529591 54 | Mar 27 593291 55 | Mar 28 660706 56 | Mar 29 720117 57 | Mar 30 739010 58 | -------------------------------------------------------------------------------- /gchart/combo-x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/gchart/combo-x.png -------------------------------------------------------------------------------- /gchart/combo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/gchart/combo.png -------------------------------------------------------------------------------- /gchart/cos.d: -------------------------------------------------------------------------------- 1 | # y=cos(x) 2 | 0.00 1.0000 3 | 0.10 0.9950 4 | 0.20 0.9801 5 | 0.30 0.9553 6 | 0.40 0.9211 7 | 0.50 0.8776 8 | 0.60 0.8253 9 | 0.70 0.7648 10 | 0.80 0.6967 11 | 0.90 0.6216 12 | 1.00 0.5403 13 | 1.10 0.4536 14 | 1.20 0.3624 15 | 1.30 0.2675 16 | 1.40 0.1700 17 | 1.50 0.0707 18 | 1.60 -0.0292 19 | 1.70 -0.1288 20 | 1.80 -0.2272 21 | 1.90 -0.3233 22 | 2.00 -0.4161 23 | 2.10 -0.5048 24 | 2.20 -0.5885 25 | 2.30 -0.6663 26 | 2.40 -0.7374 27 | 2.50 -0.8011 28 | 2.60 -0.8569 29 | 2.70 -0.9041 30 | 2.80 -0.9422 31 | 2.90 -0.9710 32 | 3.00 -0.9900 33 | 3.10 -0.9991 34 | 3.20 -0.9983 35 | 3.30 -0.9875 36 | 3.40 -0.9668 37 | 3.50 -0.9365 38 | 3.60 -0.8968 39 | 3.70 -0.8481 40 | 3.80 -0.7910 41 | 3.90 -0.7259 42 | 4.00 -0.6536 43 | 4.10 -0.5748 44 | 4.20 -0.4903 45 | 4.30 -0.4008 46 | 4.40 -0.3073 47 | 4.50 -0.2108 48 | 4.60 -0.1122 49 | 4.70 -0.0124 50 | 4.80 0.0875 51 | 4.90 0.1865 52 | 5.00 0.2837 53 | 5.10 0.3780 54 | 5.20 0.4685 55 | 5.30 0.5544 56 | 5.40 0.6347 57 | 5.50 0.7087 58 | 5.60 0.7756 59 | 5.70 0.8347 60 | 5.80 0.8855 61 | 5.90 0.9275 62 | 6.00 0.9602 63 | 6.10 0.9833 64 | 6.20 0.9965 65 | -------------------------------------------------------------------------------- /gchart/data.d: -------------------------------------------------------------------------------- 1 | # Sample Data 2 | one 10 3 | two 20 4 | three 30 5 | four 40 6 | five 50 7 | six 60 8 | seven 70 9 | eight 80 10 | nine 90 11 | ten 100 12 | -------------------------------------------------------------------------------- /gchart/dotchart-x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/gchart/dotchart-x.png -------------------------------------------------------------------------------- /gchart/gchart-sine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/gchart/gchart-sine.png -------------------------------------------------------------------------------- /gchart/hbar-x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/gchart/hbar-x.png -------------------------------------------------------------------------------- /gchart/lego-x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/gchart/lego-x.png -------------------------------------------------------------------------------- /gchart/lego.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/gchart/lego.png -------------------------------------------------------------------------------- /gchart/line-x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/gchart/line-x.png -------------------------------------------------------------------------------- /gchart/line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/gchart/line.png -------------------------------------------------------------------------------- /gchart/pie-x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/gchart/pie-x.png -------------------------------------------------------------------------------- /gchart/pie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/gchart/pie.png -------------------------------------------------------------------------------- /gchart/pop.d: -------------------------------------------------------------------------------- 1 | # Racial makeup of the US Population (2010 Census) 2 | White 64 rgb(160,82,45,120) 3 | Hispanic 16 rgb(160,82,45,180) 4 | Black 13 rgb(160,82,45) 5 | Other 7 rgb(160,82,45,220) 6 | -------------------------------------------------------------------------------- /gchart/rand.d: -------------------------------------------------------------------------------- 1 | 0 37.411 2 | 1 33.764 3 | 2 14.116 4 | 3 85.015 5 | 4 77.917 6 | 5 24.856 7 | 6 21.491 8 | 7 80.987 9 | 8 70.885 10 | 9 74.214 11 | 10 46.08 12 | 11 29.15 13 | 12 23.507 14 | 13 47.007 15 | 14 66.651 16 | 15 69.598 17 | 16 32.116 18 | 17 60.527 19 | 18 20.084 20 | 19 90.143 21 | 20 99.339 22 | 21 39.176 23 | 22 72.569 24 | 23 88.779 25 | 24 59.57 26 | 25 7.915 27 | 26 30.718 28 | 27 14.209 29 | 28 58.138 30 | 29 77.191 31 | 30 29.363 32 | -------------------------------------------------------------------------------- /gchart/scatter-x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/gchart/scatter-x.png -------------------------------------------------------------------------------- /gchart/scatter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/gchart/scatter.png -------------------------------------------------------------------------------- /gchart/sin.d: -------------------------------------------------------------------------------- 1 | # y=sin(x) 2 | 0.00 0.0000 3 | 0.10 0.0998 4 | 0.20 0.1987 5 | 0.30 0.2955 6 | 0.40 0.3894 7 | 0.50 0.4794 8 | 0.60 0.5646 9 | 0.70 0.6442 10 | 0.80 0.7174 11 | 0.90 0.7833 12 | 1.00 0.8415 13 | 1.10 0.8912 14 | 1.20 0.9320 15 | 1.30 0.9636 16 | 1.40 0.9854 17 | 1.50 0.9975 18 | 1.60 0.9996 19 | 1.70 0.9917 20 | 1.80 0.9738 21 | 1.90 0.9463 22 | 2.00 0.9093 23 | 2.10 0.8632 24 | 2.20 0.8085 25 | 2.30 0.7457 26 | 2.40 0.6755 27 | 2.50 0.5985 28 | 2.60 0.5155 29 | 2.70 0.4274 30 | 2.80 0.3350 31 | 2.90 0.2392 32 | 3.00 0.1411 33 | 3.10 0.0416 34 | 3.20 -0.0584 35 | 3.30 -0.1577 36 | 3.40 -0.2555 37 | 3.50 -0.3508 38 | 3.60 -0.4425 39 | 3.70 -0.5298 40 | 3.80 -0.6119 41 | 3.90 -0.6878 42 | 4.00 -0.7568 43 | 4.10 -0.8183 44 | 4.20 -0.8716 45 | 4.30 -0.9162 46 | 4.40 -0.9516 47 | 4.50 -0.9775 48 | 4.60 -0.9937 49 | 4.70 -0.9999 50 | 4.80 -0.9962 51 | 4.90 -0.9825 52 | 5.00 -0.9589 53 | 5.10 -0.9258 54 | 5.20 -0.8835 55 | 5.30 -0.8323 56 | 5.40 -0.7728 57 | 5.50 -0.7055 58 | 5.60 -0.6313 59 | 5.70 -0.5507 60 | 5.80 -0.4646 61 | 5.90 -0.3739 62 | 6.00 -0.2794 63 | 6.10 -0.1822 64 | 6.20 -0.0831 65 | -------------------------------------------------------------------------------- /gchart/sincon.d: -------------------------------------------------------------------------------- 1 | # y=sin(x) 2 | 0.00 0.0000 3 | 0.10 0.0998 4 | 0.20 0.1987 5 | 0.30 0.2955 6 | 0.40 0.3894 7 | 0.50 0.4794 8 | 0.60 0.5646 9 | 0.70 0.6442 10 | 0.80 0.7174 11 | 0.90 0.7833 12 | 1.00 0.8415 13 | 1.10 0.8912 14 | 1.20 0.9320 15 | 1.30 0.9636 16 | 1.40 0.9854 17 | 1.50 0.9975 18 | 1.60 0.9996 19 | 1.70 0.9917 20 | 1.80 0.9738 21 | 1.90 0.9463 22 | 2.00 0.9093 23 | 2.10 0.8632 24 | 2.20 0.8085 25 | 2.30 0.7457 26 | 2.40 0.6755 27 | 2.50 0.5985 28 | 2.60 0.5155 29 | 2.70 0.4274 30 | 2.80 0.3350 31 | 2.90 0.2392 32 | 3.00 0.1411 33 | 3.10 0.0416 34 | 3.20 -0.0584 35 | 3.30 -0.1577 36 | 3.40 -0.2555 37 | 3.50 -0.3508 38 | 3.60 -0.4425 39 | 3.70 -0.5298 40 | 3.80 -0.6119 41 | 3.90 -0.6878 42 | 4.00 -0.7568 43 | 4.10 -0.8183 44 | 4.20 -0.8716 45 | 4.30 -0.9162 46 | 4.40 -0.9516 47 | 4.50 -0.9775 48 | 4.60 -0.9937 49 | 4.70 -0.9999 50 | 4.80 -0.9962 51 | 4.90 -0.9825 52 | 5.00 -0.9589 53 | 5.10 -0.9258 54 | 5.20 -0.8835 55 | 5.30 -0.8323 56 | 5.40 -0.7728 57 | 5.50 -0.7055 58 | 5.60 -0.6313 59 | 5.70 -0.5507 60 | 5.80 -0.4646 61 | 5.90 -0.3739 62 | 6.00 -0.2794 63 | 6.10 -0.1822 64 | 6.20 -0.0831 65 | # y=cos(x) 66 | 0.00 1.0000 67 | 0.10 0.9950 68 | 0.20 0.9801 69 | 0.30 0.9553 70 | 0.40 0.9211 71 | 0.50 0.8776 72 | 0.60 0.8253 73 | 0.70 0.7648 74 | 0.80 0.6967 75 | 0.90 0.6216 76 | 1.00 0.5403 77 | 1.10 0.4536 78 | 1.20 0.3624 79 | 1.30 0.2675 80 | 1.40 0.1700 81 | 1.50 0.0707 82 | 1.60 -0.0292 83 | 1.70 -0.1288 84 | 1.80 -0.2272 85 | 1.90 -0.3233 86 | 2.00 -0.4161 87 | 2.10 -0.5048 88 | 2.20 -0.5885 89 | 2.30 -0.6663 90 | 2.40 -0.7374 91 | 2.50 -0.8011 92 | 2.60 -0.8569 93 | 2.70 -0.9041 94 | 2.80 -0.9422 95 | 2.90 -0.9710 96 | 3.00 -0.9900 97 | 3.10 -0.9991 98 | 3.20 -0.9983 99 | 3.30 -0.9875 100 | 3.40 -0.9668 101 | 3.50 -0.9365 102 | 3.60 -0.8968 103 | 3.70 -0.8481 104 | 3.80 -0.7910 105 | 3.90 -0.7259 106 | 4.00 -0.6536 107 | 4.10 -0.5748 108 | 4.20 -0.4903 109 | 4.30 -0.4008 110 | 4.40 -0.3073 111 | 4.50 -0.2108 112 | 4.60 -0.1122 113 | 4.70 -0.0124 114 | 4.80 0.0875 115 | 4.90 0.1865 116 | 5.00 0.2837 117 | 5.10 0.3780 118 | 5.20 0.4685 119 | 5.30 0.5544 120 | 5.40 0.6347 121 | 5.50 0.7087 122 | 5.60 0.7756 123 | 5.70 0.8347 124 | 5.80 0.8855 125 | 5.90 0.9275 126 | 6.00 0.9602 127 | 6.10 0.9833 128 | 6.20 0.9965 129 | -------------------------------------------------------------------------------- /gchart/wbar-x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/gchart/wbar-x.png -------------------------------------------------------------------------------- /giocanvas-grid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/giocanvas-grid.png -------------------------------------------------------------------------------- /giocanvas.go: -------------------------------------------------------------------------------- 1 | // Package giocanvas is a 2D canvas API built on gio 2 | package giocanvas 3 | 4 | import ( 5 | "image/color" 6 | 7 | "gioui.org/app" 8 | "gioui.org/font" 9 | "gioui.org/font/gofont" 10 | "gioui.org/layout" 11 | "gioui.org/op" 12 | "gioui.org/text" 13 | "gioui.org/widget/material" 14 | ) 15 | 16 | // Canvas defines the Gio canvas 17 | type Canvas struct { 18 | Width, Height float32 19 | Theme *material.Theme 20 | TextColor color.NRGBA 21 | Context layout.Context 22 | } 23 | 24 | // setupCanvas sets up common canvas items 25 | func setupCanvas(width, height float32, e app.FrameEvent, f []font.FontFace) *Canvas { 26 | canvas := new(Canvas) 27 | canvas.Width = width 28 | canvas.Height = height 29 | canvas.TextColor = color.NRGBA{0, 0, 0, 255} 30 | theme := material.NewTheme() 31 | theme.Shaper = text.NewShaper(text.NoSystemFonts(), text.WithCollection(f)) 32 | canvas.Theme = theme 33 | canvas.Context = app.NewContext(new(op.Ops), e) 34 | iw, ih := int(width), int(height) 35 | canvas.Context.Constraints.Min.X = iw 36 | canvas.Context.Constraints.Min.Y = ih 37 | canvas.Context.Constraints.Max.X = iw 38 | canvas.Context.Constraints.Max.Y = ih 39 | return canvas 40 | } 41 | 42 | // NewCanvas initializes a Canvas using the default font set 43 | func NewCanvas(width, height float32, e app.FrameEvent) *Canvas { 44 | return setupCanvas(width, height, e, gofont.Regular()) 45 | } 46 | 47 | // NewCanvasFonts initializes a canvas with a specified set of set of fonts 48 | func NewCanvasFonts(width, height float32, fonts []font.FontFace, e app.FrameEvent) *Canvas { 49 | return setupCanvas(width, height, e, fonts) 50 | } 51 | -------------------------------------------------------------------------------- /giocanvas_test.go: -------------------------------------------------------------------------------- 1 | package giocanvas 2 | 3 | import ( 4 | "testing" 5 | ) 6 | 7 | func BenchmarkC0(b *testing.B) { 8 | for n := 0; n < b.N; n++ { 9 | ColorLookup("red") 10 | } 11 | } 12 | 13 | func BenchmarkC1(b *testing.B) { 14 | for n := 0; n < b.N; n++ { 15 | ColorLookup("rgb(100)") 16 | } 17 | } 18 | 19 | func BenchmarkC2(b *testing.B) { 20 | for n := 0; n < b.N; n++ { 21 | ColorLookup("rgb(100,100)") 22 | } 23 | } 24 | 25 | func BenchmarkC3(b *testing.B) { 26 | for n := 0; n < b.N; n++ { 27 | ColorLookup("rgb(100,100,100)") 28 | } 29 | } 30 | 31 | func BenchmarkC4(b *testing.B) { 32 | for n := 0; n < b.N; n++ { 33 | ColorLookup("rgb(100,100,100,100)") 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- 1 | module github.com/ajstarks/giocanvas 2 | 3 | go 1.21 4 | 5 | toolchain go1.22.2 6 | 7 | require ( 8 | gioui.org v0.8.0 9 | github.com/ajstarks/deck v0.0.0-20230623153652-ebe7b794a4b1 10 | github.com/disintegration/gift v1.2.1 11 | ) 12 | 13 | require ( 14 | gioui.org/shader v1.0.8 // indirect 15 | github.com/go-text/typesetting v0.2.1 // indirect 16 | golang.org/x/exp v0.0.0-20240707233637-46b078467d37 // indirect 17 | golang.org/x/exp/shiny v0.0.0-20240707233637-46b078467d37 // indirect 18 | golang.org/x/image v0.18.0 // indirect 19 | golang.org/x/sys v0.22.0 // indirect 20 | golang.org/x/text v0.16.0 // indirect 21 | ) 22 | -------------------------------------------------------------------------------- /grid/README.md: -------------------------------------------------------------------------------- 1 | # grid 2 | 3 | ![grid](grid.png) 4 | 5 | ## options 6 | ``` 7 | -color string 8 | color (default "black") 9 | -height int 10 | canvas height (default 1000) 11 | -lw float 12 | line width (default 0.2) 13 | -width int 14 | canvas width (default 1000) 15 | -x1 float 16 | x begin 17 | -x2 float 18 | x end (default 100) 19 | -xincr float 20 | x increment (default 10) 21 | -y1 float 22 | y begin 23 | -y2 float 24 | y end (default 100) 25 | -yincr float 26 | y increment (default 10) 27 | 28 | ``` 29 | -------------------------------------------------------------------------------- /grid/grid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/grid/grid.png -------------------------------------------------------------------------------- /hello/README.md: -------------------------------------------------------------------------------- 1 | # gio canvas hello, world 2 | ![hello](hello.png) 3 | -------------------------------------------------------------------------------- /hello/earth.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/hello/earth.jpg -------------------------------------------------------------------------------- /hello/hello.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/hello/hello.png -------------------------------------------------------------------------------- /hello/main.go: -------------------------------------------------------------------------------- 1 | // hello is the giocanvas hello, world 2 | package main 3 | 4 | import ( 5 | "os" 6 | 7 | "gioui.org/app" 8 | "github.com/ajstarks/giocanvas" 9 | ) 10 | 11 | func main() { 12 | go hello() 13 | app.Main() 14 | } 15 | 16 | func hello() { 17 | black := giocanvas.ColorLookup("black") 18 | white := giocanvas.ColorLookup("white") 19 | w := new(app.Window) 20 | w.Option(app.Title("hello")) 21 | for { 22 | switch e := w.Event().(type) { 23 | case app.FrameEvent: 24 | w, h := float32(e.Size.X), float32(e.Size.Y) 25 | canvas := giocanvas.NewCanvas(w, h, app.FrameEvent{}) 26 | canvas.Background(black) 27 | canvas.Image("earth.jpg", 100, 0, 1000, 1000, 100) 28 | canvas.Text(10, 70, 10, "hello, world", white) 29 | e.Frame(canvas.Context.Ops) 30 | case app.DestroyEvent: 31 | os.Exit(0) 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /images/README.md: -------------------------------------------------------------------------------- 1 | # images 2 | ![images](images.png) 3 | -------------------------------------------------------------------------------- /images/earth.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/images/earth.jpg -------------------------------------------------------------------------------- /images/images.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/images/images.png -------------------------------------------------------------------------------- /images/main.go: -------------------------------------------------------------------------------- 1 | // hello is the giocanvas hello, world 2 | package main 3 | 4 | import ( 5 | "flag" 6 | "image" 7 | "image/color" 8 | "io" 9 | "os" 10 | 11 | "gioui.org/app" 12 | "gioui.org/unit" 13 | "github.com/ajstarks/giocanvas" 14 | ) 15 | 16 | func getimage(s string) (image.Image, error) { 17 | i, err := os.Open(s) 18 | if err != nil { 19 | return nil, err 20 | } 21 | im, _, err := image.Decode(i) 22 | if err != nil { 23 | return nil, err 24 | } 25 | i.Close() 26 | return im, nil 27 | } 28 | 29 | func images(w *app.Window) error { 30 | im, err := getimage("earth.jpg") 31 | if err != nil { 32 | return err 33 | } 34 | bgcolor := color.NRGBA{0, 0, 0, 255} 35 | for { 36 | e := w.Event() 37 | switch e := e.(type) { 38 | case app.DestroyEvent: 39 | return e.Err 40 | case app.FrameEvent: 41 | canvas := giocanvas.NewCanvas(float32(e.Size.X), float32(e.Size.Y), app.FrameEvent{}) 42 | var x, y, scale float32 43 | scale = 2.0 44 | canvas.Background(bgcolor) 45 | canvas.Grid(0, 0, 100, 100, 0.1, 10, color.NRGBA{128, 128, 128, 255}) 46 | for x = 20; x <= 80; x += 10 { 47 | y = x 48 | canvas.Img(im, x, y, 1000, 1000, scale) 49 | scale += 2.0 50 | } 51 | e.Frame(canvas.Context.Ops) 52 | } 53 | } 54 | } 55 | 56 | func main() { 57 | var cw, ch int 58 | flag.IntVar(&cw, "width", 1000, "canvas width") 59 | flag.IntVar(&ch, "height", 1000, "canvas height") 60 | flag.Parse() 61 | width, height := float32(cw), float32(ch) 62 | 63 | go func() { 64 | w := &app.Window{} 65 | w.Option(app.Title("images"), app.Size(unit.Dp(width), unit.Dp(height))) 66 | if err := images(w); err != nil { 67 | io.WriteString(os.Stderr, "Cannot create the window\n") 68 | os.Exit(1) 69 | } 70 | os.Exit(0) 71 | }() 72 | app.Main() 73 | } 74 | -------------------------------------------------------------------------------- /lego/README.md: -------------------------------------------------------------------------------- 1 | # lego chart 2 | ![lego](lego.png) 3 | -------------------------------------------------------------------------------- /lego/lego.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/lego/lego.png -------------------------------------------------------------------------------- /lines/README.md: -------------------------------------------------------------------------------- 1 | # line test 2 | ![linetest](lines.png) 3 | -------------------------------------------------------------------------------- /lines/lines.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/lines/lines.png -------------------------------------------------------------------------------- /lines/main.go: -------------------------------------------------------------------------------- 1 | // lines tests line drawing 2 | package main 3 | 4 | import ( 5 | "flag" 6 | "image/color" 7 | "io" 8 | "os" 9 | 10 | "gioui.org/app" 11 | "gioui.org/unit" 12 | "github.com/ajstarks/giocanvas" 13 | ) 14 | 15 | func linetest(w *app.Window) error { 16 | for { 17 | e := w.Event() 18 | switch e := e.(type) { 19 | case app.DestroyEvent: 20 | os.Exit(0) 21 | case app.FrameEvent: 22 | canvas := giocanvas.NewCanvas(float32(e.Size.X), float32(e.Size.Y), app.FrameEvent{}) 23 | var x, y, lw, ls float32 24 | lw = 0.1 25 | ls = 1 26 | for y = 5; y <= 95; y += 5 { 27 | canvas.Line(50, 50, 95, y, lw, color.NRGBA{128, 0, 0, 128}) 28 | canvas.Line(50, 50, 5, y, lw, color.NRGBA{0, 0, 128, 128}) 29 | canvas.Coord(95, y, ls, "", color.NRGBA{0, 0, 0, 255}) 30 | canvas.Coord(5, y, ls, "", color.NRGBA{0, 0, 0, 255}) 31 | lw += 0.1 32 | } 33 | 34 | lw = 0.1 35 | for x = 5; x <= 95; x += 5 { 36 | canvas.Line(50, 50, x, 95, lw, color.NRGBA{0, 128, 0, 128}) 37 | canvas.Line(50, 50, x, 5, lw, color.NRGBA{0, 0, 0, 128}) 38 | canvas.Coord(x, 95, ls, "", color.NRGBA{0, 0, 0, 255}) 39 | canvas.Coord(x, 5, ls, "", color.NRGBA{0, 0, 0, 255}) 40 | lw += 0.1 41 | } 42 | e.Frame(canvas.Context.Ops) 43 | } 44 | } 45 | } 46 | 47 | func main() { 48 | var cw, ch int 49 | flag.IntVar(&cw, "width", 1000, "canvas width") 50 | flag.IntVar(&ch, "height", 1000, "canvas height") 51 | flag.Parse() 52 | width := float32(cw) 53 | height := float32(ch) 54 | 55 | go func() { 56 | w := &app.Window{} 57 | w.Option(app.Title("lines"), app.Size(unit.Dp(width), unit.Dp(height))) 58 | if err := linetest(w); err != nil { 59 | io.WriteString(os.Stderr, "Cannot create the window\n") 60 | os.Exit(1) 61 | } 62 | os.Exit(0) 63 | }() 64 | app.Main() 65 | } 66 | -------------------------------------------------------------------------------- /misc/b1m.d: -------------------------------------------------------------------------------- 1 | play 6.91553 2 | hello 6.86238 3 | chart 6.85622 4 | lines 6.82271 5 | rl 4.60692 6 | confetti 4.59443 7 | eclipse 4.56734 8 | concentric 4.56731 9 | sunearth 4.5673 10 | mondrian 4.50354 11 | -------------------------------------------------------------------------------- /misc/b2m.d: -------------------------------------------------------------------------------- 1 | play 5.40438 2 | hello 5.36722 3 | chart 5.36345 4 | lines 5.33884 5 | rl 3.22403 6 | confetti 3.21555 7 | sunearth 3.19424 8 | eclipse 3.19424 9 | concentric 3.19424 10 | mondrian 3.14518 11 | -------------------------------------------------------------------------------- /misc/bdiff.dsh: -------------------------------------------------------------------------------- 1 | deck 2 | opts="-textsize=1.8 -dot -bar=f -line -fulldeck=f -linewidth=0.3 -left=20 -right=80 -min=0 -max=7 -val=f" 3 | slide 4 | ctext "Binary size difference for gio programs:" 50 90 3 5 | text "Regular build" 81 62 2 "sans" "red" 6 | text "-ldflags='-s -w'" 81 52 2 "sans" "steelblue" 7 | etext "Binary size (bytes x 1 million)" 20 85 1.5 8 | 9 | dchart opts -yrange=0,7,1 -grid -yaxis -color=red -hline 2.085304,hello.go b1m.d 10 | dchart opts -xlabel=0 b2m.d 11 | eslide 12 | edeck -------------------------------------------------------------------------------- /misc/gio.dsh: -------------------------------------------------------------------------------- 1 | deck 2 | cw=1200 3 | ch=1900 4 | canvas cw ch 5 | slide 6 | labelsize = 1.5 7 | titlesize = labelsize * 4 8 | subsize = labelsize * 0.7 9 | tcolor = "maroon" 10 | fcolor = "rgb(0,0,128)" 11 | col1x = 20 12 | lw = 0.2 13 | op = 50 14 | 15 | ctext "Gio Canvas API" 50 90 titlesize 16 | 17 | // Lines 18 | ctext "Line" col1x 80 labelsize 19 | line 10 75 col1x 65 lw tcolor 20 | line col1x 70 35 75 lw fcolor 21 | 22 | // Circle 23 | ctext "Circle" col1x 55 labelsize 24 | circle col1x 45 10 fcolor op 25 | 26 | // Ellipse 27 | ctext "Ellipse" col1x 30 labelsize 28 | ellipse col1x 15 5 10 tcolor op 29 | ellipse col1x 15 10 5 fcolor op 30 | 31 | // Curve 32 | ctext "Quadratic Bezier Curve" 60 80 labelsize 33 | curve 45 65 70 85 70 65 0.5 tcolor op 34 | 35 | // Polygon 36 | ctext "Polygon" 60 30 labelsize 37 | polygon "45 60 70 70 60 45" "25 20 25 5 10 5" fcolor op 38 | 39 | ctext "Rectangle" 90 80 labelsize 40 | rect 90 70 5 15 fcolor op 41 | 42 | ctext "Square" 90 55 labelsize 43 | square 90 45 10 tcolor op 44 | 45 | imw=cw*0.15 46 | imh=imw 47 | image "earth.jpg" 90 15 imw imh 48 | eslide 49 | edeck -------------------------------------------------------------------------------- /mondrian/README.md: -------------------------------------------------------------------------------- 1 | # mondrian 2 | ![mondrian](mondrian.png) 3 | -------------------------------------------------------------------------------- /mondrian/mondrian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/mondrian/mondrian.png -------------------------------------------------------------------------------- /pie/2009-01.d: -------------------------------------------------------------------------------- 1 | # Browser Market Share 2010-01 2 | Chrome 1.38 #2171b5 3 | IE 65.41 #4292c6 4 | Firefox 27.03 #6baed6 5 | Safari 2.57 #9ecae1 6 | Other 3.61 #c6dbef 7 | -------------------------------------------------------------------------------- /pie/2010-01.d: -------------------------------------------------------------------------------- 1 | # Browser Market Share 2010-01 2 | Chrome 6.04 #2171b5 3 | IE 55.25 #4292c6 4 | Firefox 31.64 #6baed6 5 | Safari 3.76 #9ecae1 6 | Other 3.31 #c6dbef 7 | -------------------------------------------------------------------------------- /pie/2011-01.d: -------------------------------------------------------------------------------- 1 | # Browser Market Share 2011-01 2 | Chrome 15.68 #2171b5 3 | IE 46.00 #4292c6 4 | Firefox 30.68 #6baed6 5 | Safari 5.09 #9ecae1 6 | Other 2.55 #c6dbef 7 | -------------------------------------------------------------------------------- /pie/2012-01.d: -------------------------------------------------------------------------------- 1 | # Browser Market Share 2012-01 2 | Chrome 28.40 #2171b5 3 | IE 37.45 #4292c6 4 | Firefox 24.78 #6baed6 5 | Safari 6.62 #9ecae1 6 | Other 2.75 #c6dbef 7 | -------------------------------------------------------------------------------- /pie/2013-01.d: -------------------------------------------------------------------------------- 1 | # Browser Market Share 2013-01 2 | Chrome 38.08 #2171b5 3 | IE 32.25 #4292c6 4 | Firefox 22.47 #6baed6 5 | Safari 5.12 #9ecae1 6 | Other 2.08 #c6dbef 7 | -------------------------------------------------------------------------------- /pie/2014-01.d: -------------------------------------------------------------------------------- 1 | # Browser Market Share 2014-01 2 | Chrome 46.60 #2171b5 3 | IE 24.65 #4292c6 4 | Firefox 20.39 #6baed6 5 | Safari 5.09 #9ecae1 6 | Other 3.37 #c6dbef 7 | -------------------------------------------------------------------------------- /pie/2015-01.d: -------------------------------------------------------------------------------- 1 | # Browser Market Share 2015-01 2 | Chrome 51.72 #2171b5 3 | IE 21.16 #4292c6 4 | Firefox 18.70 #6baed6 5 | Safari 4.94 #9ecae1 6 | Other 3.48 #c6dbef 7 | -------------------------------------------------------------------------------- /pie/2016-01.d: -------------------------------------------------------------------------------- 1 | # Browser Market Share 2016-01 2 | Chrome 57.75 #2171b5 3 | IE 16.00 #4292c6 4 | Firefox 15.95 #6baed6 5 | Safari 4.60 #9ecae1 6 | Other 5.70 #c6dbef 7 | -------------------------------------------------------------------------------- /pie/2017-01.d: -------------------------------------------------------------------------------- 1 | # Browser Market Share 2017-01 2 | Chrome 62.09 #2171b5 3 | IE/Edge 14.07 #4292c6 4 | Firefox 14.85 #6baed6 5 | Safari 5.28 #9ecae1 6 | Other 3.71 #c6dbef 7 | -------------------------------------------------------------------------------- /pie/2018-01.d: -------------------------------------------------------------------------------- 1 | # Browser Market Share 2018-01 2 | Chrome 65.98 #2171b5 3 | IE/Edge 11.39 #4292c6 4 | Firefox 11.87 #6baed6 5 | Safari 5.87 #9ecae1 6 | Other 4.89 #c6dbef 7 | -------------------------------------------------------------------------------- /pie/2019-01.d: -------------------------------------------------------------------------------- 1 | # Browser Market Share 2019-01 2 | Chrome 70.88 #2171b5 3 | IE/Edge 10.15 #4292c6 4 | Firefox 9.50 #6baed6 5 | Safari 5.15 #9ecae1 6 | Other 4.32 #c6dbef 7 | -------------------------------------------------------------------------------- /pie/2020-06.d: -------------------------------------------------------------------------------- 1 | # Browser Market Share 2020-06 2 | Chrome 65.47 #2171b5 3 | IE/Edge 2.06 #4292c6 4 | Firefox 4.25 #6baed6 5 | Safari 16.97 #9ecae1 6 | Other 11.25 #c6dbef 7 | -------------------------------------------------------------------------------- /pie/2021-09.d: -------------------------------------------------------------------------------- 1 | # Browser Market Share 2021-09 2 | Chrome 67.17 #2171b5 3 | Edge 9.33 #4292c6 4 | Firefox 7.87 #6baed6 5 | Safari 9.63 #9ecae1 6 | Other 5.99 #c6dbef 7 | -------------------------------------------------------------------------------- /pie/README.md: -------------------------------------------------------------------------------- 1 | # pie chart 2 | 3 | Makes pie charts reading from files in this format: 4 | one line per item, fields (name, value, color; tab-separated) 5 | lines beginning with '#' are the title. 6 | 7 | For example: 8 | 9 | ``` 10 | # Desktop Browser Market Share 2021-09 11 | Chrome 67.17 red 12 | Edge 9.33 green 13 | Firefox 7.87 orange 14 | Safari 9.63 blue 15 | Other 5.99 gray 16 | ``` 17 | 18 | If no files a specified, embedded data is shown. The command line options: 19 | 20 | ``` 21 | -height int 22 | canvas height (default 1000) 23 | -width int 24 | canvas width (default 1000) 25 | ``` 26 | 27 | ## Keyboard commands 28 | 29 | | Command | Action | 30 | | -------------------------------------------- | --------------- | 31 | | A, Ctrl-A, ^, 1, Home | first slide | 32 | | E, Crtl-E, $, End | last slide | 33 | | K, F, Ctrl-F, Ctrl-N, Space, Enter | next slide | 34 | | J, B, Ctrl-B, Ctrl-P, Shift-Space, Shift-Enter| previous slide | 35 | | G | toggle a grid | 36 | | Q, ESC | Quit | 37 | 38 | ## Mouse interactions 39 | 40 | | Button | Action | 41 | | ------------- | --------------- | 42 | | Left | next slide | 43 | | Right | previous slide | 44 | | Middle | first slide | 45 | | Wheel-Forward | next slide | 46 | | Wheel-Back | previous slide | 47 | 48 | 49 | 50 | 51 | 52 | ![pie](pie.png) 53 | -------------------------------------------------------------------------------- /pie/pie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/pie/pie.png -------------------------------------------------------------------------------- /play/README.md: -------------------------------------------------------------------------------- 1 | # gio playground 2 | 3 | ## testing the API 4 | 5 | ![screenshot](play.png) -------------------------------------------------------------------------------- /play/earth.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/play/earth.jpg -------------------------------------------------------------------------------- /play/follow.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/play/follow.jpg -------------------------------------------------------------------------------- /play/giocanvas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/play/giocanvas.png -------------------------------------------------------------------------------- /play/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/play/logo.png -------------------------------------------------------------------------------- /play/play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/play/play.png -------------------------------------------------------------------------------- /polar/README.md: -------------------------------------------------------------------------------- 1 | # polar coordinates 2 | 3 | 4 | ![polar](polar.png) -------------------------------------------------------------------------------- /polar/main.go: -------------------------------------------------------------------------------- 1 | // polar demos polar coordinates 2 | package main 3 | 4 | import ( 5 | "flag" 6 | "image/color" 7 | "math" 8 | "os" 9 | 10 | "gioui.org/app" 11 | "gioui.org/unit" 12 | "github.com/ajstarks/giocanvas" 13 | ) 14 | 15 | func polar(title string, width, height int) { 16 | // init app window 17 | w := &app.Window{} 18 | w.Option(app.Title(title), app.Size(unit.Dp(float32(width)), unit.Dp(float32(height)))) 19 | // set colors 20 | topcolor := color.NRGBA{255, 0, 0, 100} 21 | botcolor := color.NRGBA{0, 0, 255, 100} 22 | bgcolor := color.NRGBA{0, 0, 0, 255} 23 | // app loop 24 | for { 25 | e := w.Event() 26 | switch e := e.(type) { 27 | case app.DestroyEvent: 28 | os.Exit(0) 29 | case app.FrameEvent: 30 | canvas := giocanvas.NewCanvas(float32(e.Size.X), float32(e.Size.Y), app.FrameEvent{}) 31 | canvas.Background(bgcolor) 32 | var theta, radius float32 33 | for radius = 2; radius < 50; radius += 2 { 34 | for theta = 180; theta <= 360; theta += 15 { // degrees 35 | x, y := canvas.PolarDegrees(50, 50, radius, theta) 36 | canvas.Circle(x, y, radius/12, topcolor) 37 | } 38 | for theta = math.Pi / 16; theta < math.Pi; theta += math.Pi / 16 { // radians 39 | x, y := canvas.Polar(50, 50, radius, theta) 40 | canvas.Circle(x, y, radius/12, botcolor) 41 | } 42 | } 43 | e.Frame(canvas.Context.Ops) 44 | } 45 | } 46 | } 47 | 48 | func main() { 49 | cw := flag.Int("width", 1000, "canvas width") 50 | ch := flag.Int("height", 1000, "canvas height") 51 | flag.Parse() 52 | go polar("polar coordinates", *cw, *ch) 53 | app.Main() 54 | } 55 | -------------------------------------------------------------------------------- /polar/polar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/polar/polar.png -------------------------------------------------------------------------------- /presentation/clients.dsh: -------------------------------------------------------------------------------- 1 | imscale=10 2 | image "images/hello.png" x y 1020 1046 imscale 3 | image "images/concentric.png" x y 1020 1046 imscale 4 | image "images/compchart.png" x y 1020 1046 imscale 5 | image "images/confetti.png" x y 1020 1046 imscale 6 | image "images/eclipse.png" x y 1020 1046 imscale 7 | image "images/flowers.png" x y 1020 1046 imscale 8 | image "images/lines.png" x y 1020 1046 imscale 9 | image "images/mondrian.png" x y 1020 1046 imscale 10 | image "images/polar.png" x y 1020 1046 imscale 11 | image "images/sunearth.png" x y 1020 1046 imscale 12 | image "images/transform.png" x y 1020 1046 imscale 13 | image "images/twrap.png" x y 1020 1046 imscale 14 | -------------------------------------------------------------------------------- /presentation/code/chartbox.go: -------------------------------------------------------------------------------- 1 | // NameValue is a name,value pair 2 | type NameValue struct { 3 | label string 4 | note string 5 | value float64 6 | } 7 | 8 | // ChartBox holds the essential data for making a chart 9 | type ChartBox struct { 10 | Title string 11 | Data []NameValue 12 | Color color.RGBA 13 | Top, Bottom, Left, Right float64 14 | Minvalue, Maxvalue float64 15 | Zerobased bool 16 | } 17 | -------------------------------------------------------------------------------- /presentation/code/chartread.go: -------------------------------------------------------------------------------- 1 | sr, err := os.Open("sin.d") 2 | if err != nil { 3 | return err 4 | } 5 | cr, err := os.Open("cos.d") 6 | if err != nil { 7 | return err 8 | } 9 | sine, err := chart.DataRead(sr) 10 | if err != nil { 11 | return err 12 | } 13 | cosine, err := chart.DataRead(cr) 14 | if err != nil { 15 | return err 16 | } 17 | -------------------------------------------------------------------------------- /presentation/code/composite.go: -------------------------------------------------------------------------------- 1 | cosine.Zerobased = false 2 | sine.Zerobased = false 3 | cosine.Frame(canvas, 5) 4 | sine.Label(canvas, 1.5, 10) 5 | cosine.YAxis(canvas, 1.2, -1.0, 1.0, 1.0, "%0.2f", true) 6 | cosine.Color = color.RGBA{0, 128, 0, 255} 7 | sine.Color = color.RGBA{128, 0, 0, 255} 8 | cosine.Scatter(canvas, 0.5) 9 | sine.Scatter(canvas, 0.5) 10 | -------------------------------------------------------------------------------- /presentation/code/cos.d: -------------------------------------------------------------------------------- 1 | # y=cos(x) 2 | 0.00 1.0000 3 | 0.10 0.9950 4 | 0.20 0.9801 5 | 0.30 0.9553 6 | 0.40 0.9211 7 | 0.50 0.8776 8 | 0.60 0.8253 9 | 0.70 0.7648 10 | 0.80 0.6967 11 | 0.90 0.6216 12 | 1.00 0.5403 13 | ... 14 | 6.00 0.9602 15 | 6.10 0.9833 16 | 6.20 0.9965 17 | -------------------------------------------------------------------------------- /presentation/code/cosine.d: -------------------------------------------------------------------------------- 1 | # y=cos(x) 2 | 0.00 1.0000 3 | 0.10 0.9950 4 | 0.20 0.9801 5 | 0.30 0.9553 6 | 0.40 0.9211 7 | 0.50 0.8776 8 | 0.60 0.8253 9 | 0.70 0.7648 10 | 0.80 0.6967 11 | 0.90 0.6216 12 | 1.00 0.5403 13 | 1.10 0.4536 14 | 1.20 0.3624 15 | 1.30 0.2675 16 | 1.40 0.1700 17 | 1.50 0.0707 18 | 1.60 -0.0292 19 | 1.70 -0.1288 20 | 1.80 -0.2272 21 | 1.90 -0.3233 22 | 2.00 -0.4161 23 | 2.10 -0.5048 24 | 2.20 -0.5885 25 | 2.30 -0.6663 26 | 2.40 -0.7374 27 | 2.50 -0.8011 28 | 2.60 -0.8569 29 | 2.70 -0.9041 30 | 2.80 -0.9422 31 | 2.90 -0.9710 32 | 3.00 -0.9900 33 | 3.10 -0.9991 34 | 3.20 -0.9983 35 | 3.30 -0.9875 36 | 3.40 -0.9668 37 | 3.50 -0.9365 38 | 3.60 -0.8968 39 | 3.70 -0.8481 40 | 3.80 -0.7910 41 | 3.90 -0.7259 42 | 4.00 -0.6536 43 | 4.10 -0.5748 44 | 4.20 -0.4903 45 | 4.30 -0.4008 46 | 4.40 -0.3073 47 | 4.50 -0.2108 48 | 4.60 -0.1122 49 | 4.70 -0.0124 50 | 4.80 0.0875 51 | 4.90 0.1865 52 | 5.00 0.2837 53 | 5.10 0.3780 54 | 5.20 0.4685 55 | 5.30 0.5544 56 | 5.40 0.6347 57 | 5.50 0.7087 58 | 5.60 0.7756 59 | 5.70 0.8347 60 | 5.80 0.8855 61 | 5.90 0.9275 62 | 6.00 0.9602 63 | 6.10 0.9833 64 | 6.20 0.9965 65 | -------------------------------------------------------------------------------- /presentation/code/earth.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/presentation/code/earth.jpg -------------------------------------------------------------------------------- /presentation/code/hello.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "gioui.org/app" 5 | "gioui.org/io/system" 6 | "gioui.org/unit" 7 | gc "github.com/ajstarks/giocanvas" 8 | ) 9 | 10 | func hello(title string, width, height float32) { 11 | win := app.NewWindow(app.Title(title), app.Size(unit.Px(width), unit.Px(height))) 12 | for e := range win.Events() { 13 | switch e := e.(type) { 14 | case system.FrameEvent: 15 | canvas := gc.NewCanvas(width, height, e) 16 | canvas.Background(gc.ColorLookup("black")) 17 | canvas.Circle(50, 0, 50, gc.ColorLookup("blue")) 18 | canvas.TextMid(50, 20, 10, "hello, world", gc.ColorLookup("white")) 19 | canvas.CenterImage("earth.jpg", 50, 70, 1000, 1000, 30) 20 | e.Frame(canvas.Context.Ops) 21 | } 22 | } 23 | } 24 | 25 | func main() { 26 | go hello("hello", 1000, 1000) 27 | app.Main() 28 | } 29 | -------------------------------------------------------------------------------- /presentation/code/side-by-side.go: -------------------------------------------------------------------------------- 1 | sine.Left = 10 2 | sine.Right = sine.Left + 40 3 | sine.Top, cosine.Top = 30, 30 4 | sine.Bottom, cosine.Bottom = 10, 10 5 | 6 | sine.CTitle(canvas, 2, 2) 7 | sine.Frame(canvas, 10) 8 | sine.Scatter(canvas, 0.25) 9 | 10 | offset := 45.0 11 | cosine.Left = sine.Left + offset 12 | cosine.Right = sine.Right + offset 13 | 14 | cosine.CTitle(canvas, 2, 2) 15 | cosine.Frame(canvas, 10) 16 | cosine.Scatter(canvas, 0.25) 17 | -------------------------------------------------------------------------------- /presentation/code/sin.d: -------------------------------------------------------------------------------- 1 | # y=sin(x) 2 | 0.00 0.0000 3 | 0.10 0.0998 4 | 0.20 0.1987 5 | 0.30 0.2955 6 | 0.40 0.3894 7 | 0.50 0.4794 8 | 0.60 0.5646 9 | 0.70 0.6442 10 | 0.80 0.7174 11 | 0.90 0.7833 12 | 1.00 0.8415 13 | ... 14 | 6.00 -0.2794 15 | 6.10 -0.1822 16 | 6.20 -0.0831 17 | -------------------------------------------------------------------------------- /presentation/code/sine.d: -------------------------------------------------------------------------------- 1 | # y=sin(x) 2 | 0.00 0.0000 3 | 0.10 0.0998 4 | 0.20 0.1987 5 | 0.30 0.2955 6 | 0.40 0.3894 7 | 0.50 0.4794 8 | 0.60 0.5646 9 | 0.70 0.6442 10 | 0.80 0.7174 11 | 0.90 0.7833 12 | 1.00 0.8415 13 | 1.10 0.8912 14 | 1.20 0.9320 15 | 1.30 0.9636 16 | 1.40 0.9854 17 | 1.50 0.9975 18 | 1.60 0.9996 19 | 1.70 0.9917 20 | 1.80 0.9738 21 | 1.90 0.9463 22 | 2.00 0.9093 23 | 2.10 0.8632 24 | 2.20 0.8085 25 | 2.30 0.7457 26 | 2.40 0.6755 27 | 2.50 0.5985 28 | 2.60 0.5155 29 | 2.70 0.4274 30 | 2.80 0.3350 31 | 2.90 0.2392 32 | 3.00 0.1411 33 | 3.10 0.0416 34 | 3.20 -0.0584 35 | 3.30 -0.1577 36 | 3.40 -0.2555 37 | 3.50 -0.3508 38 | 3.60 -0.4425 39 | 3.70 -0.5298 40 | 3.80 -0.6119 41 | 3.90 -0.6878 42 | 4.00 -0.7568 43 | 4.10 -0.8183 44 | 4.20 -0.8716 45 | 4.30 -0.9162 46 | 4.40 -0.9516 47 | 4.50 -0.9775 48 | 4.60 -0.9937 49 | 4.70 -0.9999 50 | 4.80 -0.9962 51 | 4.90 -0.9825 52 | 5.00 -0.9589 53 | 5.10 -0.9258 54 | 5.20 -0.8835 55 | 5.30 -0.8323 56 | 5.40 -0.7728 57 | 5.50 -0.7055 58 | 5.60 -0.6313 59 | 5.70 -0.5507 60 | 5.80 -0.4646 61 | 5.90 -0.3739 62 | 6.00 -0.2794 63 | 6.10 -0.1822 64 | 6.20 -0.0831 65 | -------------------------------------------------------------------------------- /presentation/gc.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/presentation/gc.pdf -------------------------------------------------------------------------------- /presentation/images/c19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/presentation/images/c19.png -------------------------------------------------------------------------------- /presentation/images/client-api.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/presentation/images/client-api.png -------------------------------------------------------------------------------- /presentation/images/clients.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/presentation/images/clients.png -------------------------------------------------------------------------------- /presentation/images/comp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/presentation/images/comp.png -------------------------------------------------------------------------------- /presentation/images/compchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/presentation/images/compchart.png -------------------------------------------------------------------------------- /presentation/images/concentric.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/presentation/images/concentric.png -------------------------------------------------------------------------------- /presentation/images/confetti.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/presentation/images/confetti.png -------------------------------------------------------------------------------- /presentation/images/eclipse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/presentation/images/eclipse.png -------------------------------------------------------------------------------- /presentation/images/flowers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/presentation/images/flowers.png -------------------------------------------------------------------------------- /presentation/images/gc0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/presentation/images/gc0.png -------------------------------------------------------------------------------- /presentation/images/gc1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/presentation/images/gc1.png -------------------------------------------------------------------------------- /presentation/images/gchart-sine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/presentation/images/gchart-sine.png -------------------------------------------------------------------------------- /presentation/images/gchart1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/presentation/images/gchart1.png -------------------------------------------------------------------------------- /presentation/images/hello.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/presentation/images/hello.png -------------------------------------------------------------------------------- /presentation/images/lines.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/presentation/images/lines.png -------------------------------------------------------------------------------- /presentation/images/mondrian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/presentation/images/mondrian.png -------------------------------------------------------------------------------- /presentation/images/play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/presentation/images/play.png -------------------------------------------------------------------------------- /presentation/images/polar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/presentation/images/polar.png -------------------------------------------------------------------------------- /presentation/images/side-by-side.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/presentation/images/side-by-side.png -------------------------------------------------------------------------------- /presentation/images/sine+cosine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/presentation/images/sine+cosine.png -------------------------------------------------------------------------------- /presentation/images/sunearth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/presentation/images/sunearth.png -------------------------------------------------------------------------------- /presentation/images/tile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/presentation/images/tile.png -------------------------------------------------------------------------------- /presentation/images/transform.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/presentation/images/transform.png -------------------------------------------------------------------------------- /presentation/images/twrap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/presentation/images/twrap.png -------------------------------------------------------------------------------- /presentation/mkdeck: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | decksh gc.dsh | pdfdeck -pagesize 1920,1080 -sans Go-Medium -mono Inconsolata-Regular $* -stdout - > gc.pdf 3 | -------------------------------------------------------------------------------- /presentation/showgrid.dsh: -------------------------------------------------------------------------------- 1 | gx=15 2 | gridlen=50 3 | egx=gx+gridlen 4 | gstep=5 5 | 6 | rect 40 45 50 50 bgcolor 7 | 8 | gy=20 9 | egy=gy+gridlen 10 | for x=gx egx gstep 11 | vline x gy 50 0.1 fgcolor 60 12 | efor 13 | 14 | 15 | for y=gy egy gstep 16 | hline gx y 50 0.1 fgcolor 60 17 | efor 18 | 19 | lgs=ls*0.75 20 | lgx=gx-3 21 | lgy=gy-3 22 | 23 | ctext "0" 15 lgy lgs 24 | ctext "10" 20 lgy lgs 25 | ctext "20" 25 lgy lgs 26 | ctext "30" 30 lgy lgs 27 | ctext "40" 35 lgy lgs 28 | ctext "50" 40 lgy lgs 29 | ctext "60" 45 lgy lgs 30 | ctext "70" 50 lgy lgs 31 | ctext "80" 55 lgy lgs 32 | ctext "90" 60 lgy lgs 33 | ctext "100" 65 lgy lgs 34 | 35 | 36 | ctext "0" lgx 20 lgs 37 | ctext "10" lgx 25 lgs 38 | ctext "20" lgx 30 lgs 39 | ctext "30" lgx 35 lgs 40 | ctext "40" lgx 40 lgs 41 | ctext "50" lgx 45 lgs 42 | ctext "60" lgx 50 lgs 43 | ctext "70" lgx 55 lgs 44 | ctext "80" lgx 60 lgs 45 | ctext "90" lgx 65 lgs 46 | ctext "100" lgx 70 lgs 47 | 48 | 49 | ctext "x" gx 10 2 50 | arrow 20 10 65 10 0.1 1 2 51 | ctext "y" 5 20 2 52 | arrow 5 25 5 70 0.1 2 1 53 | -------------------------------------------------------------------------------- /rc.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | for i in $(cat cl) 3 | do 4 | cd $i 5 | echo -n "$i " 6 | case $i in 7 | showfonts) 8 | ./showfonts -text 'Hello Gio' OpenSans*.ttf & 9 | ;; 10 | showimage) 11 | ./showimage showimage.png & 12 | ;; 13 | elections) 14 | ./elections nyt-????.d & 15 | ./elections -shape h nyt-19??.d & 16 | ./elections -shape s nyt-19??.d & 17 | ./elections -bgcolor linen -textcolor black -shape l nyt-19??.d & 18 | ./elections -bgcolor linen -textcolor black -shape p nyt-19??.d & 19 | ./elections -bgcolor linen -textcolor black -shape g nyt-19??.d & 20 | ;; 21 | gcdeck) 22 | ./gcdeck -pagesize 800x500 test.xml & 23 | ;; 24 | gchart) 25 | ./allcharts 26 | ;; 27 | *) 28 | ./$i & 29 | ;; 30 | esac 31 | cd .. 32 | done 33 | echo 34 | -------------------------------------------------------------------------------- /rgb/README.md: -------------------------------------------------------------------------------- 1 | # color lookup test 2 | ![colorlookup](rgb.png) 3 | -------------------------------------------------------------------------------- /rgb/main.go: -------------------------------------------------------------------------------- 1 | // rgb shows RGB values 2 | package main 3 | 4 | import ( 5 | "flag" 6 | "image/color" 7 | "io" 8 | "os" 9 | 10 | "gioui.org/app" 11 | "gioui.org/unit" 12 | "github.com/ajstarks/giocanvas" 13 | ) 14 | 15 | func main() { 16 | var cw, ch int 17 | flag.IntVar(&cw, "width", 1000, "canvas width") 18 | flag.IntVar(&ch, "height", 1000, "canvas height") 19 | flag.Parse() 20 | 21 | width := float32(cw) 22 | height := float32(ch) 23 | 24 | go func() { 25 | w := &app.Window{} 26 | w.Option(app.Title("rgb"), app.Size(unit.Dp(width), unit.Dp(height))) 27 | if err := rgb(w); err != nil { 28 | io.WriteString(os.Stderr, "Cannot create the window\n") 29 | os.Exit(1) 30 | } 31 | os.Exit(0) 32 | }() 33 | app.Main() 34 | 35 | } 36 | 37 | func rgb(w *app.Window) error { 38 | colortab := []string{ 39 | "orange", 40 | "rgb(100)", 41 | "rgb(100,50)", 42 | "rgb(100,50,2)", 43 | "rgb(100,50,2,100)", 44 | "hsv(0,70,50)", 45 | "hsv(0,70,50,50)", 46 | "#aa", 47 | "#aabb", 48 | "#aabbcc", 49 | "#aabbcc64", 50 | "rgb()", 51 | "hsv()", 52 | "#", 53 | "#error", 54 | "nonsense", 55 | } 56 | var x, y float32 57 | for { 58 | ev := w.Event() 59 | switch e := ev.(type) { 60 | case app.DestroyEvent: 61 | return e.Err 62 | case app.FrameEvent: 63 | canvas := giocanvas.NewCanvas(float32(e.Size.X), float32(e.Size.Y), app.FrameEvent{}) 64 | x, y = 50, 95 65 | for _, c := range colortab { 66 | canvas.EText(x-10, y, 3, c, color.NRGBA{0, 0, 0, 255}) 67 | canvas.Circle(x, y+1, 2, giocanvas.ColorLookup(c)) 68 | y -= 6 69 | } 70 | e.Frame(canvas.Context.Ops) 71 | } 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /rgb/rgb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/rgb/rgb.png -------------------------------------------------------------------------------- /rl/README.md: -------------------------------------------------------------------------------- 1 | # RL - Random Lines 2 | 3 | ![rl](rl.png) 4 | -------------------------------------------------------------------------------- /rl/main.go: -------------------------------------------------------------------------------- 1 | // rl makes random lines 2 | package main 3 | 4 | import ( 5 | "flag" 6 | "image/color" 7 | "math/rand" 8 | "os" 9 | "time" 10 | 11 | "gioui.org/app" 12 | "gioui.org/io/system" 13 | "gioui.org/unit" 14 | gc "github.com/ajstarks/giocanvas" 15 | ) 16 | 17 | func rn(n int) float32 { 18 | return float32(rand.Intn(n)) 19 | } 20 | 21 | func rl(title string, w, h, nlines int, thickness float32) { 22 | width, height := float32(w), float32(h) 23 | win := app.NewWindow(app.Title(title), app.Size(unit.Px(width), unit.Px(height))) 24 | for { 25 | e := <-win.Events() 26 | switch e := e.(type) { 27 | case system.DestroyEvent: 28 | os.Exit(0) 29 | 30 | case system.FrameEvent: 31 | canvas := gc.NewCanvas(width, height, e) 32 | canvas.Background(gc.ColorLookup("black")) 33 | for i := 0; i < nlines; i++ { 34 | r := uint8(rand.Intn(230)) 35 | c := color.NRGBA{r, r, r, 150} 36 | canvas.Line(rn(100), 0, rn(100), 100, thickness, c) 37 | } 38 | e.Frame(canvas.Context.Ops) 39 | } 40 | } 41 | } 42 | 43 | func main() { 44 | var w, h, n int 45 | var size float64 46 | flag.IntVar(&w, "width", 1000, "canvas width") 47 | flag.IntVar(&h, "height", 1000, "canvas height") 48 | flag.IntVar(&n, "n", 500, "number of lines") 49 | flag.Float64Var(&size, "size", 2, "line thickness (%)") 50 | 51 | flag.Parse() 52 | rand.Seed(time.Now().Unix()) 53 | go rl("Random Lines", w, h, n, float32(size)) 54 | app.Main() 55 | } 56 | -------------------------------------------------------------------------------- /rl/rl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/rl/rl.png -------------------------------------------------------------------------------- /run-cpu.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | for i in $(cat cl) 3 | do 4 | echo $i 5 | cd $i 6 | GIORENDERER=forcecompute go run . 7 | cd .. 8 | done 9 | -------------------------------------------------------------------------------- /scim/README.md: -------------------------------------------------------------------------------- 1 | # scim - scalable image 2 | 3 | ![scim1](scim01.png) 4 | 5 | ![scim2](scim02.png) 6 | 7 | ## options 8 | ``` 9 | sciam [options] file 10 | 11 | -height int 12 | canvas height (default 1000) 13 | -width int 14 | canvas width (default 1000) 15 | ``` 16 | -------------------------------------------------------------------------------- /scim/earth.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/scim/earth.jpg -------------------------------------------------------------------------------- /scim/main.go: -------------------------------------------------------------------------------- 1 | // scalable image 2 | package main 3 | 4 | import ( 5 | "flag" 6 | "fmt" 7 | "image" 8 | "image/color" 9 | "os" 10 | 11 | "gioui.org/app" 12 | "gioui.org/unit" 13 | "github.com/ajstarks/giocanvas" 14 | ) 15 | 16 | func getimage(s string) (image.Image, error) { 17 | i, err := os.Open(s) 18 | if err != nil { 19 | return nil, err 20 | } 21 | im, _, err := image.Decode(i) 22 | if err != nil { 23 | return nil, err 24 | } 25 | i.Close() 26 | return im, nil 27 | } 28 | 29 | func scimage(w *app.Window, filename string) error { 30 | im, err := getimage(filename) 31 | if err != nil { 32 | return err 33 | } 34 | imw := im.Bounds().Dx() 35 | imh := im.Bounds().Dy() 36 | bgcolor := color.NRGBA{0, 0, 0, 255} 37 | fgcolor := color.NRGBA{255, 255, 255, 255} 38 | gridcolor := fgcolor 39 | gridcolor.A = 75 40 | for { 41 | e := w.Event() 42 | switch e := e.(type) { 43 | case app.DestroyEvent: 44 | return e.Err 45 | case app.FrameEvent: 46 | canvas := giocanvas.NewCanvas(float32(e.Size.X), float32(e.Size.Y), app.FrameEvent{}) 47 | scale := (float32(e.Size.X) / float32(imw)) * 100 48 | canvas.Background(bgcolor) 49 | canvas.Img(im, 50, 50, imw, imh, scale) 50 | canvas.CText(50, 50, 5, "Scaled Image", fgcolor) 51 | canvas.Grid(0, 0, 100, 100, 0.1, 10, gridcolor) 52 | e.Frame(canvas.Context.Ops) 53 | } 54 | } 55 | } 56 | 57 | func main() { 58 | var cw, ch int 59 | flag.IntVar(&cw, "width", 1000, "canvas width") 60 | flag.IntVar(&ch, "height", 1000, "canvas height") 61 | flag.Parse() 62 | filenames := flag.Args() 63 | var imfile string 64 | if len(filenames) == 0 { 65 | imfile = "earth.jpg" 66 | } else { 67 | imfile = filenames[0] 68 | } 69 | width, height := float32(cw), float32(ch) 70 | 71 | go func() { 72 | w := &app.Window{} 73 | w.Option(app.Title("Scaled Image"), app.Size(unit.Dp(width), unit.Dp(height))) 74 | if err := scimage(w, imfile); err != nil { 75 | fmt.Fprintf(os.Stderr, "Cannot create the window: %v\n", err) 76 | os.Exit(1) 77 | } 78 | os.Exit(0) 79 | }() 80 | app.Main() 81 | } 82 | -------------------------------------------------------------------------------- /scim/scim01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/scim/scim01.png -------------------------------------------------------------------------------- /scim/scim02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/scim/scim02.png -------------------------------------------------------------------------------- /shapesketch/README.md: -------------------------------------------------------------------------------- 1 | # shapesketch 2 | 3 | ![shapesketch](default.png) 4 | ![shapesketch-dark](dark-curve.png) 5 | 6 | ![line](line.png) 7 | ![circle](circle.png) 8 | ![square](square.png) 9 | ![rect](rect.png) 10 | ![curve](curve.png) 11 | ![ellipse](ellipse.png) 12 | ![arc](arc.png) 13 | 14 | ## Pointer controls 15 | 16 | * Primary pointer press: define begin point 17 | * Secondary pointer press: define ending point 18 | * Tertiary pointer press: show the decksh spec 19 | * Move: define current point 20 | 21 | ## Keyboard controls 22 | 23 | ### Adjustments 24 | 25 | * left, right, up, down arrow keys: adjust begin point 26 | * Ctrl + left, up, down, arrow keys: adjust end point 27 | 28 | ### Shapes 29 | 30 | * A: arc 31 | * B: quadradic Bezier 32 | * C: circle 33 | * E: ellipse 34 | * L: line 35 | * R: rectangle 36 | * S: square 37 | 38 | ### Info 39 | 40 | * D: show the decksh spec 41 | * G: toggle coordinate grid 42 | * Q, ESC: quit 43 | 44 | 45 | 46 | ## Command-line options 47 | ``` 48 | -begincolor string 49 | begin coordinate color (default "green") 50 | -bgcolor string 51 | background color (default "white") 52 | -csize float 53 | coordinate size (default 1.25) 54 | -currentcolor string 55 | current coordinate color (default "gray") 56 | -endcolor string 57 | end coordinate color (default "red") 58 | -height int 59 | canvas height (default 1000) 60 | -lsize float 61 | line size (default 1) 62 | -precision int 63 | coordinate precision 64 | -shapecolor string 65 | curve color (default "#22222255") 66 | -ssize float 67 | step size for coordinate nudging (default 0.5) 68 | -textcolor string 69 | text color (default "black") 70 | -tsize float 71 | text size (default 2.5) 72 | -width int 73 | canvas width (default 1000) 74 | ``` 75 | -------------------------------------------------------------------------------- /shapesketch/arc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/shapesketch/arc.png -------------------------------------------------------------------------------- /shapesketch/circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/shapesketch/circle.png -------------------------------------------------------------------------------- /shapesketch/curve.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/shapesketch/curve.png -------------------------------------------------------------------------------- /shapesketch/dark-curve.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/shapesketch/dark-curve.png -------------------------------------------------------------------------------- /shapesketch/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/shapesketch/default.png -------------------------------------------------------------------------------- /shapesketch/ellipse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/shapesketch/ellipse.png -------------------------------------------------------------------------------- /shapesketch/line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/shapesketch/line.png -------------------------------------------------------------------------------- /shapesketch/rect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/shapesketch/rect.png -------------------------------------------------------------------------------- /shapesketch/square.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/shapesketch/square.png -------------------------------------------------------------------------------- /showfonts/Go-Bold-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/showfonts/Go-Bold-Italic.ttf -------------------------------------------------------------------------------- /showfonts/Go-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/showfonts/Go-Bold.ttf -------------------------------------------------------------------------------- /showfonts/Go-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/showfonts/Go-Italic.ttf -------------------------------------------------------------------------------- /showfonts/Go-Medium-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/showfonts/Go-Medium-Italic.ttf -------------------------------------------------------------------------------- /showfonts/Go-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/showfonts/Go-Medium.ttf -------------------------------------------------------------------------------- /showfonts/Go-Mono-Bold-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/showfonts/Go-Mono-Bold-Italic.ttf -------------------------------------------------------------------------------- /showfonts/Go-Mono-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/showfonts/Go-Mono-Bold.ttf -------------------------------------------------------------------------------- /showfonts/Go-Mono-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/showfonts/Go-Mono-Italic.ttf -------------------------------------------------------------------------------- /showfonts/Go-Mono.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/showfonts/Go-Mono.ttf -------------------------------------------------------------------------------- /showfonts/Go-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/showfonts/Go-Regular.ttf -------------------------------------------------------------------------------- /showfonts/Go-Smallcaps-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/showfonts/Go-Smallcaps-Italic.ttf -------------------------------------------------------------------------------- /showfonts/Go-Smallcaps.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/showfonts/Go-Smallcaps.ttf -------------------------------------------------------------------------------- /showfonts/OpenSans-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/showfonts/OpenSans-Bold.ttf -------------------------------------------------------------------------------- /showfonts/OpenSans-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/showfonts/OpenSans-BoldItalic.ttf -------------------------------------------------------------------------------- /showfonts/OpenSans-ExtraBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/showfonts/OpenSans-ExtraBold.ttf -------------------------------------------------------------------------------- /showfonts/OpenSans-ExtraBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/showfonts/OpenSans-ExtraBoldItalic.ttf -------------------------------------------------------------------------------- /showfonts/OpenSans-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/showfonts/OpenSans-Italic.ttf -------------------------------------------------------------------------------- /showfonts/OpenSans-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/showfonts/OpenSans-Light.ttf -------------------------------------------------------------------------------- /showfonts/OpenSans-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/showfonts/OpenSans-LightItalic.ttf -------------------------------------------------------------------------------- /showfonts/OpenSans-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/showfonts/OpenSans-Regular.ttf -------------------------------------------------------------------------------- /showfonts/OpenSans-Semibold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/showfonts/OpenSans-Semibold.ttf -------------------------------------------------------------------------------- /showfonts/OpenSans-SemiboldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/showfonts/OpenSans-SemiboldItalic.ttf -------------------------------------------------------------------------------- /showfonts/README.md: -------------------------------------------------------------------------------- 1 | # showfonts 2 | 3 | Show fonts 4 | 5 | ![showfont](gofonts.png) 6 | 7 | ```showfonts Go*.ttf``` 8 | 9 | ![message](message.png) 10 | 11 | ```showfonts -text Hello -bgcolor black -txcolor white Go*.ttf``` 12 | 13 | ![other](other.png) 14 | 15 | ```showfonts -text hello,world /usr/share/fonts/open-sans/*.ttf``` 16 | 17 | 18 | ## options 19 | ```showfonts [options] files...``` 20 | 21 | ``` 22 | -bgcolor string 23 | background color (default "white") 24 | -height int 25 | canvas height (default 1000) 26 | -ls float 27 | line spacing (default 1.5) 28 | -text string 29 | text to show 30 | -ts float 31 | text size (0 for autoscale) 32 | -txcolor string 33 | text color (default "black") 34 | -width int 35 | canvas width (default 1000) 36 | ``` 37 | -------------------------------------------------------------------------------- /showfonts/gofonts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/showfonts/gofonts.png -------------------------------------------------------------------------------- /showfonts/message.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/showfonts/message.png -------------------------------------------------------------------------------- /showfonts/other.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/showfonts/other.png -------------------------------------------------------------------------------- /showimage/README.md: -------------------------------------------------------------------------------- 1 | # showimage -- show an image (JPEG, PNG or GIF) 2 | 3 | $ showimage -scale 25 ~/Pictures/follow.jpg 4 | 5 | ![showimage.png](showimage.png) 6 | 7 | options 8 | ``` 9 | -height int 10 | canvas height 11 | -scale float 12 | scale (0-100) (default 100) 13 | -width int 14 | canvas width 15 | ``` 16 | -------------------------------------------------------------------------------- /showimage/main.go: -------------------------------------------------------------------------------- 1 | // showimage shows an image 2 | package main 3 | 4 | import ( 5 | "flag" 6 | "fmt" 7 | "image" 8 | _ "image/gif" 9 | _ "image/jpeg" 10 | _ "image/png" 11 | "os" 12 | 13 | "gioui.org/app" 14 | "gioui.org/unit" 15 | "github.com/ajstarks/giocanvas" 16 | ) 17 | 18 | // imageinfo opens an image file, returning an image.Image, with dimensions 19 | func imageinfo(imagefile string) (image.Image, int, int, error) { 20 | f, err := os.Open(imagefile) 21 | if err != nil { 22 | return nil, 0, 0, err 23 | } 24 | im, _, err := image.Decode(f) 25 | if err != nil { 26 | return nil, 0, 0, err 27 | } 28 | f.Close() 29 | return im, im.Bounds().Dx(), im.Bounds().Dy(), nil 30 | } 31 | 32 | // showimage shows an image, centered on the canvas at the specified scale and size 33 | func showimage(w *app.Window, im image.Image, width, height int, scale float32) error { 34 | for { 35 | e := w.Event() 36 | switch e := e.(type) { 37 | case app.DestroyEvent: 38 | return e.Err 39 | case app.FrameEvent: 40 | canvas := giocanvas.NewCanvas(float32(e.Size.X), float32(e.Size.Y), app.FrameEvent{}) 41 | scale = (float32(e.Size.X) / float32(width)) * 100 42 | canvas.Img(im, 50, 50, width, height, scale) 43 | e.Frame(canvas.Context.Ops) 44 | } 45 | } 46 | } 47 | 48 | func main() { 49 | var ( 50 | width, height int 51 | scale float64 52 | err error 53 | im image.Image 54 | ) 55 | flag.Float64Var(&scale, "scale", 100, "scale (0-100)") 56 | flag.Parse() 57 | args := flag.Args() 58 | if len(args) == 0 { 59 | fmt.Fprintln(os.Stderr, "specify an image file (JPEG, PNG, or GIF)") 60 | os.Exit(1) 61 | } 62 | for _, imagefile := range args { 63 | im, width, height, err = imageinfo(imagefile) 64 | if err != nil { 65 | fmt.Fprintf(os.Stderr, "%v\n", err) 66 | continue 67 | } 68 | 69 | sc, sw, sh := float32(scale), float32(width), float32(height) 70 | if scale != 100 { 71 | sw *= sc / 100 72 | sh *= sc / 100 73 | } 74 | w := &app.Window{} 75 | w.Option(app.Title(imagefile), app.Size(unit.Dp(sw), unit.Dp(sh))) 76 | if err := showimage(w, im, width, height, sc); err != nil { 77 | fmt.Fprintf(os.Stderr, "%v\n", err) 78 | os.Exit(1) 79 | } 80 | } 81 | os.Exit(0) 82 | } 83 | -------------------------------------------------------------------------------- /showimage/showimage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/showimage/showimage.png -------------------------------------------------------------------------------- /spiral/README.md: -------------------------------------------------------------------------------- 1 | # Spiral 2 | 3 | ![spiral](spiral.png) 4 | 5 | ## Options 6 | ``` 7 | -a float 8 | a (default 1.5) 9 | -b float 10 | b (default 0.8) 11 | -color string 12 | dot color (default "gray") 13 | -dot float 14 | dotsize (default 0.75) 15 | -height int 16 | canvas height (default 1000) 17 | -incr float 18 | increment (default 0.01) 19 | -n float 20 | n (default 16) 21 | -width int 22 | canvas width (default 1000) 23 | ``` 24 | 25 | -------------------------------------------------------------------------------- /spiral/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "flag" 5 | "image/color" 6 | "math" 7 | "os" 8 | 9 | "gioui.org/app" 10 | "gioui.org/unit" 11 | "github.com/ajstarks/giocanvas" 12 | ) 13 | 14 | func spiral(canvas *giocanvas.Canvas, cx, cy, dotsize float32, a, b, n, incr float64, color color.NRGBA) { 15 | for t := 0.0; t <= n*math.Pi; t += incr { 16 | sint, cost := math.Sincos(t) 17 | r := a + (b * t) 18 | x := cx + float32(r*cost) 19 | y := cy + float32(r*sint) 20 | canvas.Circle(x, y, dotsize, color) 21 | } 22 | } 23 | 24 | func work(title string, width, height float32, a, b, n, incr, dotsize float64, color string) { 25 | w := &app.Window{} 26 | w.Option(app.Title(title), app.Size(unit.Dp(width), unit.Dp(height))) 27 | var cx, cy float32 = 50, 50 28 | spcolor := giocanvas.ColorLookup(color) 29 | for { 30 | e := w.Event() 31 | switch e := e.(type) { 32 | case app.DestroyEvent: 33 | os.Exit(0) 34 | case app.FrameEvent: 35 | canvas := giocanvas.NewCanvas(float32(e.Size.X), float32(e.Size.Y), e) 36 | spiral(canvas, cx, cy, float32(dotsize), a, b, n, incr, spcolor) 37 | e.Frame(canvas.Context.Ops) 38 | } 39 | } 40 | } 41 | 42 | func main() { 43 | var w, h int 44 | var a, b, n, incr, dotsize float64 45 | var dotcolor string 46 | flag.IntVar(&w, "width", 1000, "canvas width") 47 | flag.IntVar(&h, "height", 1000, "canvas height") 48 | flag.Float64Var(&a, "a", 1.5, "a") 49 | flag.Float64Var(&b, "b", 0.8, "b") 50 | flag.Float64Var(&n, "n", 16.0, "n") 51 | flag.Float64Var(&incr, "incr", 0.01, "increment") 52 | flag.Float64Var(&dotsize, "dot", 0.75, "dotsize") 53 | flag.StringVar(&dotcolor, "color", "gray", "dot color") 54 | flag.Parse() 55 | work("spiral", float32(w), float32(h), a, b, n, incr, dotsize, dotcolor) 56 | } 57 | -------------------------------------------------------------------------------- /spiral/spiral.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/spiral/spiral.png -------------------------------------------------------------------------------- /sunearth/README.md: -------------------------------------------------------------------------------- 1 | # sunearth 2 | ![sunearth](sunearth.png) 3 | -------------------------------------------------------------------------------- /sunearth/earth.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/sunearth/earth.jpg -------------------------------------------------------------------------------- /sunearth/main.go: -------------------------------------------------------------------------------- 1 | // sunearth shows the relative size of the Sun and Earth 2 | package main 3 | 4 | import ( 5 | "flag" 6 | "image/color" 7 | "io" 8 | "os" 9 | 10 | "gioui.org/app" 11 | "gioui.org/unit" 12 | "github.com/ajstarks/giocanvas" 13 | ) 14 | 15 | func sunearth(w *app.Window) error { 16 | 17 | yellow := color.NRGBA{255, 248, 231, 255} 18 | blue := color.NRGBA{44, 77, 232, 255} 19 | black := color.NRGBA{0, 0, 0, 255} 20 | 21 | var earthsize float32 = 0.8 22 | sunsize := earthsize * 109 23 | 24 | for { 25 | e := w.Event() 26 | switch e := e.(type) { 27 | case app.DestroyEvent: 28 | return e.Err 29 | case app.FrameEvent: 30 | canvas := giocanvas.NewCanvas(float32(e.Size.X), float32(e.Size.Y), app.FrameEvent{}) 31 | canvas.CenterRect(50, 50, 100, 100, black) 32 | canvas.Circle(100, 0, sunsize, yellow) 33 | canvas.Circle(30, 90, earthsize, blue) 34 | e.Frame(canvas.Context.Ops) 35 | } 36 | } 37 | } 38 | 39 | func main() { 40 | var cw, ch int 41 | flag.IntVar(&cw, "width", 1000, "canvas width") 42 | flag.IntVar(&ch, "height", 1000, "canvas height") 43 | flag.Parse() 44 | width := float32(cw) 45 | height := float32(ch) 46 | 47 | go func() { 48 | w := &app.Window{} 49 | w.Option(app.Title("sun+earth"), app.Size(unit.Dp(width), unit.Dp(height))) 50 | if err := sunearth(w); err != nil { 51 | io.WriteString(os.Stderr, "Cannot create the window\n") 52 | os.Exit(1) 53 | } 54 | os.Exit(0) 55 | }() 56 | app.Main() 57 | } 58 | -------------------------------------------------------------------------------- /sunearth/sunearth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/sunearth/sunearth.png -------------------------------------------------------------------------------- /template: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "flag" 5 | "os" 6 | 7 | "gioui.org/app" 8 | "gioui.org/io/key" 9 | "gioui.org/io/system" 10 | "gioui.org/unit" 11 | "github.com/ajstarks/giocanvas" 12 | ) 13 | 14 | func work(title string, width, height float32) { 15 | defer os.Exit(0) 16 | win := app.NewWindow(app.Title(title), app.Size(unit.Px(width), unit.Px(height))) 17 | for e := range win.Events() { 18 | switch e := e.(type) { 19 | case system.FrameEvent: 20 | canvas := giocanvas.NewCanvas(width, height, e) 21 | // your code here 22 | e.Frame(canvas.Context.Ops) 23 | case key.Event: 24 | switch e.Name { 25 | case "Q", key.NameEscape: 26 | os.Exit(0) 27 | } 28 | } 29 | } 30 | } 31 | 32 | func main() { 33 | var w, h int 34 | flag.IntVar(&w, "width", 1000, "canvas width") 35 | flag.IntVar(&h, "height", 1000, "canvas height") 36 | flag.Parse() 37 | go work("work", float32(w), float32(h)) 38 | app.Main() 39 | } 40 | -------------------------------------------------------------------------------- /tile/README.md: -------------------------------------------------------------------------------- 1 | # tile 2 | ![tile](tile.png) 3 | -------------------------------------------------------------------------------- /tile/tile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/tile/tile.png -------------------------------------------------------------------------------- /transform/README.md: -------------------------------------------------------------------------------- 1 | # Transformations 2 | ![transforms](transforms.png) 3 | -------------------------------------------------------------------------------- /transform/transform.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/transform/transform.png -------------------------------------------------------------------------------- /transform/transforms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/transform/transforms.png -------------------------------------------------------------------------------- /transforms.go: -------------------------------------------------------------------------------- 1 | package giocanvas 2 | 3 | import "gioui.org/op" 4 | 5 | // Transformations 6 | 7 | // Translate moves current location by (x,y) using percentage-based measures 8 | func (c *Canvas) Translate(x, y float32) op.TransformStack { 9 | x, y = dimen(x, y, c.Width, c.Height) 10 | return c.AbsTranslate(x, y) 11 | } 12 | 13 | // Rotate around (x,y) by angle (radians) using percentage-based measures 14 | func (c *Canvas) Rotate(x, y, angle float32) op.TransformStack { 15 | x, y = dimen(x, y, c.Width, c.Height) 16 | return c.AbsRotate(x, y, angle) 17 | } 18 | 19 | // Scale centered at (x,y) by factor using percentage-based measures 20 | func (c *Canvas) Scale(x, y, factor float32) op.TransformStack { 21 | x, y = dimen(x, y, c.Width, c.Height) 22 | return c.AbsScale(x, y, factor) 23 | } 24 | 25 | // Shear the object centered at (x,y) using x-angle and y-angle (radians) using percentage-based measures 26 | func (c *Canvas) Shear(x, y, ax, ay float32) op.TransformStack { 27 | x, y = dimen(x, y, c.Width, c.Height) 28 | return c.AbsShear(x, y, ax, ay) 29 | } 30 | 31 | // EndTransform ends a transformation 32 | func EndTransform(stack op.TransformStack) { 33 | stack.Pop() 34 | } 35 | -------------------------------------------------------------------------------- /twrap/README.md: -------------------------------------------------------------------------------- 1 | # gio canvas text wrap 2 | ![twrap](twrap.png) 3 | -------------------------------------------------------------------------------- /twrap/twrap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajstarks/giocanvas/01a7ed1cd3322cf255fadb79fb4ff1446f43d47f/twrap/twrap.png -------------------------------------------------------------------------------- /update: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | go get gioui.org@main && 3 | go mod tidy -compat=1.17 && 4 | ./bc.sh && 5 | ./rc.sh 6 | --------------------------------------------------------------------------------