initial diagonal work (unfinished)

This commit is contained in:
Tim
2024-04-30 21:30:16 -04:00
parent e8dafc0732
commit 056a4e299d
11 changed files with 357 additions and 165 deletions

View File

@@ -41,7 +41,16 @@ import {linspace, sideColor} from "@/misc.js";
import {computed, watchEffect} from "vue";
import Color from "color";
import {cancelDrawing} from "@/charts/chart.js";
import {devectorize, vectorAdd, vectorDiv, vectorMul, vectorSub, vectorIsNull, vectorize} from "@/vector.js";
import {
devectorize,
vectorAdd,
vectorDiv,
vectorMul,
vectorSub,
vectorIsNull,
vectorize,
vectorIsZero
} from "@/vector.js";
const os = useOrderStore()
const co = useChartOrderStore()
@@ -99,9 +108,8 @@ const rungs = computed({
r = Number(r)
const prevR = Number(props.builder.rungs)
props.builder.rungs = r
console.log('set rungs', prevR, r, a, b)
// console.log('set rungs', prevR, r, a, b)
if ( r > 0 && vectorIsNull(b) ) {
console.log('convert to range')
// convert single shape to a range
if (props.mode===0) {
const width = props.stdWidth
@@ -126,7 +134,6 @@ const rungs = computed({
else {
// from multi to multi
if (props.mode===1) {
console.log('multi-multi mode 1')
const width = vectorDiv(vectorSub(b, a), (prevR-1))
b = vectorAdd(a, vectorMul(width, (r-1)))
setEndpoints(a,b)
@@ -222,18 +229,18 @@ function translateOnModel(shape) {
const oldOnModel = shape.onModel
shape.onModel = function (model, oldModel) {
oldOnModel.call(this, ...arguments)
// console.log('translateOnDrag', this.beingDragged(), shape.ourPoints)
if (!this.beingDragged())
return
const prev = getModelValue(oldModel)
const cur = getModelValue(this.model)
const delta = cur - prev
const cur = vectorize(getModelValue(this.model))
const delta = vectorSub(cur, prev)
// console.log('delta', shape.id, prev, cur, delta)
let [a, b] = endpoints.value
if (delta !== 0) {
a = vectorize(a)
if (!vectorIsZero(delta)) {
a = vectorAdd(a, delta)
if (rungs.value > 1)
b = vectorAdd(b, delta)
b = vectorAdd(vectorize(b), delta)
setEndpoints(a,b)
}
}