GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — solvespace/js at master · iscgar/solvespace

Expand file tree

/

js

/
Copy path

Directory actions

More options

More options

Directory actions

More options

More options

Latest commit

 

History

History
History
 
 
/

js

/
Copy path

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
README.md
README.md
 
 
slvs.d.ts
slvs.d.ts
 
 

README.md

Outline

slvs

SolveSpace's geometric constraint solver for the browser and node.js

example

<script src="slvs.js"></script>
<script type="text/javascript">
solvespace().then(function (slvs) {
  slvs.clearSketch()
  var g = 1
  var wp = slvs.addBase2D(g)
  var p0 = slvs.addPoint2D(g, 0, 0, wp)
  slvs.dragged(g, p0, wp)
  var p1 = slvs.addPoint2D(g, 90, 0, wp)
  slvs.dragged(g, p1, wp)
  var line0 = slvs.addLine2D(g, p0, p1, wp)
  var p2 = slvs.addPoint2D(g, 20, 20, wp)
  var p3 = slvs.addPoint2D(g, 0, 10, wp)
  var p4 = slvs.addPoint2D(g, 30, 20, wp)
  slvs.distance(g, p2, p3, 40, wp)
  slvs.distance(g, p2, p4, 40, wp)
  slvs.distance(g, p3, p4, 70, wp)
  slvs.distance(g, p0, p3, 35, wp)
  slvs.distance(g, p1, p4, 70, wp)
  var line1 = slvs.addLine2D(g, p0, p3, wp)
  // slvs.angle(g, line0, line1, 45, wp, false)
  slvs.addConstraint(
    g,
    slvs.C_ANGLE,
    wp,
    45.0,
    slvs.E_NONE,
    slvs.E_NONE,
    line0,
    line1,
    slvs.E_NONE,
    slvs.E_NONE,
    false,
    false,
  )
  var result = slvs.solveSketch(g, false)
  console.log(result['result'], '==', 0)
  var x = slvs.getParamValue(p2.param[0])
  var y = slvs.getParamValue(p2.param[1])
  console.log(39.54852, x)
  console.log(61.91009, y)


  var r = 10
  angle = 45
  slvs.clearSketch()
  var g = 1
  var wp = slvs.addBase2D(g)
  var p0 = slvs.addPoint2D(g, 0, 0, wp)
  slvs.dragged(g, p0, wp)
  var p1 = slvs.addPoint2D(g, 0, 10, wp)
  slvs.distance(g, p0, p1, r, wp)
  var line0 = slvs.addLine2D(g, p0, p1, wp)

  var p2 = slvs.addPoint2D(g, 10, 10, wp)
  var line1 = slvs.addLine2D(g, p1, p2, wp)
  slvs.distance(g, p1, p2, r * (angle * (Math.PI / 180)), wp)
  slvs.perpendicular(g, line0, line1, wp, false)

  var p3 = slvs.addPoint2D(g, 10, 0, wp)
  slvs.dragged(g, p3, wp)
  var lineBase = slvs.addLine2D(g, p0, p3, wp)
  slvs.angle(g, line0, lineBase, angle, wp, false)

  var result = slvs.solveSketch(g, false)
  console.log(result['result'], '==', 0)
  var x = slvs.getParamValue(p2.param[0])
  var y = slvs.getParamValue(p2.param[1])
  console.log(12.62467, '==', x)
  console.log(1.51746, '==', y)

  q1 = slvs.Quaternion.from(1, 2, 3, 4)
  q2 = slvs.Quaternion.from(1, 2, 3, 4)
  console.log(q1.times(q2).rotationU().x)
})
</script>
You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.