first canvas drawing
This commit is contained in:
commit
681139064e
5 changed files with 91 additions and 0 deletions
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
/target
|
||||||
|
Cargo.lock
|
22
Cargo.toml
Normal file
22
Cargo.toml
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
[package]
|
||||||
|
name = "circle_canvas"
|
||||||
|
version = "0.1.0"
|
||||||
|
authors = ["Histausse"]
|
||||||
|
edition = "2021"
|
||||||
|
|
||||||
|
[lib]
|
||||||
|
crate-type = ["cdylib"]
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
js-sys = "0.3.55"
|
||||||
|
wasm-bindgen = "0.2.78"
|
||||||
|
|
||||||
|
[dependencies.web-sys]
|
||||||
|
version = "0.3.4"
|
||||||
|
features = [
|
||||||
|
'CanvasRenderingContext2d',
|
||||||
|
'Document',
|
||||||
|
'Element',
|
||||||
|
'HtmlCanvasElement',
|
||||||
|
'Window',
|
||||||
|
]
|
11
README.md
Normal file
11
README.md
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
# Build:
|
||||||
|
|
||||||
|
```
|
||||||
|
wasm-pack build --target web
|
||||||
|
```
|
||||||
|
|
||||||
|
# Run:
|
||||||
|
|
||||||
|
```
|
||||||
|
python3 -m http.server
|
||||||
|
```
|
18
index.html
Normal file
18
index.html
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta content="text/html;charset=utf-8" http-equiv="Content-Type"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<script type="module">
|
||||||
|
import init from "./pkg/circle_canvas.js";
|
||||||
|
|
||||||
|
async function run() {
|
||||||
|
await init();
|
||||||
|
}
|
||||||
|
|
||||||
|
run();
|
||||||
|
</script>
|
||||||
|
<canvas id="canvas" height="150" width="150"></canvas>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
38
src/lib.rs
Normal file
38
src/lib.rs
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
use std::f64;
|
||||||
|
use wasm_bindgen::prelude::*;
|
||||||
|
use wasm_bindgen::JsCast;
|
||||||
|
|
||||||
|
#[wasm_bindgen(start)]
|
||||||
|
pub fn start() {
|
||||||
|
let document = web_sys::window().unwrap().document().unwrap();
|
||||||
|
let canvas = document.get_element_by_id("canvas").unwrap();
|
||||||
|
let canvas: web_sys::HtmlCanvasElement = canvas
|
||||||
|
.dyn_into::<web_sys::HtmlCanvasElement>()
|
||||||
|
.map_err(|_| ())
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
let context = canvas
|
||||||
|
.get_context("2d")
|
||||||
|
.unwrap()
|
||||||
|
.unwrap()
|
||||||
|
.dyn_into::<web_sys::CanvasRenderingContext2d>()
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
context.begin_path();
|
||||||
|
|
||||||
|
context
|
||||||
|
.arc(75.0, 75.0, 50.0, 0.0, f64::consts::PI * 2.0)
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
context.move_to(110.0, 75.0);
|
||||||
|
context
|
||||||
|
.arc(75.0, 75.0, 35.0, 0.0, f64::consts::PI)
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
context.move_to(65.0, 65.0);
|
||||||
|
context
|
||||||
|
.arc(60.0, 65.0, 5.0, 0.0, f64::consts::PI * 2.0)
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
context.stroke();
|
||||||
|
}
|
Loading…
Reference in a new issue