实现decoration1的渲染
parent
df362f036a
commit
da2dea1199
|
@ -44,7 +44,6 @@
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import Ring from './Ring.vue'
|
import Ring from './Ring.vue'
|
||||||
import Decoration1 from './Layout/Decoration1.vue'
|
import Decoration1 from './Layout/Decoration1.vue'
|
||||||
import Decoration5 from './Layout/Decoration5.vue'
|
|
||||||
|
|
||||||
import { ref, computed } from 'vue'
|
import { ref, computed } from 'vue'
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="dv-decoration-1" ref="dom">
|
<div class="dv-decoration-1" ref="dom">
|
||||||
<svg :width="`${svgWH[0]}px`" :height="`${svgWH[1]}px`" :style="`transform:scale(${svgScale[0]},${svgScale[1]});`">
|
<svg :width="`${svgWH[0]}px`" :height="`${svgWH[1]}px`">
|
||||||
|
|
||||||
<template
|
<template
|
||||||
v-for="(point, i) in points"
|
v-for="(point, i) in points"
|
||||||
>
|
>
|
||||||
|
@ -85,67 +84,335 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { ref, onMounted, reactive } from 'vue'
|
|
||||||
|
|
||||||
|
|
||||||
const dom = ref(null)
|
|
||||||
const width = ref(0)
|
|
||||||
const height = ref(0)
|
|
||||||
|
|
||||||
const svgWH = [200, 50]
|
const svgWH = [200, 50]
|
||||||
const rowNum = 4
|
|
||||||
const rowPoints = 20
|
|
||||||
const defaultColor = ['#fff', '#0de7c2']
|
const defaultColor = ['#fff', '#0de7c2']
|
||||||
|
|
||||||
const pointSideLength = 2.5
|
const pointSideLength = 2.5
|
||||||
const halfPointSideLength = pointSideLength / 2
|
const halfPointSideLength = pointSideLength / 2
|
||||||
|
|
||||||
|
const rects = [[190.47619047619048, 20], [171.42857142857142, 20]]
|
||||||
|
const points = [
|
||||||
let rects = reactive([])
|
[
|
||||||
let points = reactive([])
|
9.523809523809524,
|
||||||
let svgScale = reactive([1, 1])
|
10
|
||||||
|
],
|
||||||
const calcPointsPosition = () => {
|
[
|
||||||
const [w, h] = svgWH
|
19.047619047619047,
|
||||||
const horizontalGap = w / (rowPoints + 1)
|
10
|
||||||
const verticalGap = h / (rowNum + 1)
|
],
|
||||||
|
[
|
||||||
let pointArr = new Array(rowNum).fill(0).map((foo, i) =>
|
28.57142857142857,
|
||||||
new Array(rowPoints).fill(0).map((foo, j) => [
|
10
|
||||||
horizontalGap * (j + 1), verticalGap * (i + 1)
|
],
|
||||||
])
|
[
|
||||||
)
|
38.095238095238095,
|
||||||
|
10
|
||||||
points = pointArr.reduce((all, item) => [...all, ...item], [])
|
],
|
||||||
}
|
[
|
||||||
|
47.61904761904762,
|
||||||
|
10
|
||||||
const calcRectsPosition = () => {
|
],
|
||||||
const rect1 = points[rowPoints * 2 - 1]
|
[
|
||||||
const rect2 = points[rowPoints * 2 - 3]
|
57.14285714285714,
|
||||||
|
10
|
||||||
rects = [rect1, rect2]
|
],
|
||||||
}
|
[
|
||||||
|
66.66666666666667,
|
||||||
const calcSVGData = () => {
|
10
|
||||||
calcPointsPosition()
|
],
|
||||||
calcRectsPosition()
|
[
|
||||||
calcScale()
|
76.19047619047619,
|
||||||
}
|
10
|
||||||
|
],
|
||||||
const calcScale = () => {
|
[
|
||||||
const [w, h] = svgWH
|
85.71428571428571,
|
||||||
|
10
|
||||||
svgScale = [width.value / w, height.value / h]
|
],
|
||||||
}
|
[
|
||||||
|
95.23809523809524,
|
||||||
onMounted(() => {
|
10
|
||||||
width.value = dom.value.clientWidth
|
],
|
||||||
height.value = dom.value.clientHeight
|
[
|
||||||
|
104.76190476190476,
|
||||||
calcSVGData()
|
10
|
||||||
})
|
],
|
||||||
|
[
|
||||||
|
114.28571428571428,
|
||||||
|
10
|
||||||
|
],
|
||||||
|
[
|
||||||
|
123.80952380952381,
|
||||||
|
10
|
||||||
|
],
|
||||||
|
[
|
||||||
|
133.33333333333334,
|
||||||
|
10
|
||||||
|
],
|
||||||
|
[
|
||||||
|
142.85714285714286,
|
||||||
|
10
|
||||||
|
],
|
||||||
|
[
|
||||||
|
152.38095238095238,
|
||||||
|
10
|
||||||
|
],
|
||||||
|
[
|
||||||
|
161.9047619047619,
|
||||||
|
10
|
||||||
|
],
|
||||||
|
[
|
||||||
|
171.42857142857142,
|
||||||
|
10
|
||||||
|
],
|
||||||
|
[
|
||||||
|
180.95238095238096,
|
||||||
|
10
|
||||||
|
],
|
||||||
|
[
|
||||||
|
190.47619047619048,
|
||||||
|
10
|
||||||
|
],
|
||||||
|
[
|
||||||
|
9.523809523809524,
|
||||||
|
20
|
||||||
|
],
|
||||||
|
[
|
||||||
|
19.047619047619047,
|
||||||
|
20
|
||||||
|
],
|
||||||
|
[
|
||||||
|
28.57142857142857,
|
||||||
|
20
|
||||||
|
],
|
||||||
|
[
|
||||||
|
38.095238095238095,
|
||||||
|
20
|
||||||
|
],
|
||||||
|
[
|
||||||
|
47.61904761904762,
|
||||||
|
20
|
||||||
|
],
|
||||||
|
[
|
||||||
|
57.14285714285714,
|
||||||
|
20
|
||||||
|
],
|
||||||
|
[
|
||||||
|
66.66666666666667,
|
||||||
|
20
|
||||||
|
],
|
||||||
|
[
|
||||||
|
76.19047619047619,
|
||||||
|
20
|
||||||
|
],
|
||||||
|
[
|
||||||
|
85.71428571428571,
|
||||||
|
20
|
||||||
|
],
|
||||||
|
[
|
||||||
|
95.23809523809524,
|
||||||
|
20
|
||||||
|
],
|
||||||
|
[
|
||||||
|
104.76190476190476,
|
||||||
|
20
|
||||||
|
],
|
||||||
|
[
|
||||||
|
114.28571428571428,
|
||||||
|
20
|
||||||
|
],
|
||||||
|
[
|
||||||
|
123.80952380952381,
|
||||||
|
20
|
||||||
|
],
|
||||||
|
[
|
||||||
|
133.33333333333334,
|
||||||
|
20
|
||||||
|
],
|
||||||
|
[
|
||||||
|
142.85714285714286,
|
||||||
|
20
|
||||||
|
],
|
||||||
|
[
|
||||||
|
152.38095238095238,
|
||||||
|
20
|
||||||
|
],
|
||||||
|
[
|
||||||
|
161.9047619047619,
|
||||||
|
20
|
||||||
|
],
|
||||||
|
[
|
||||||
|
171.42857142857142,
|
||||||
|
20
|
||||||
|
],
|
||||||
|
[
|
||||||
|
180.95238095238096,
|
||||||
|
20
|
||||||
|
],
|
||||||
|
[
|
||||||
|
190.47619047619048,
|
||||||
|
20
|
||||||
|
],
|
||||||
|
[
|
||||||
|
9.523809523809524,
|
||||||
|
30
|
||||||
|
],
|
||||||
|
[
|
||||||
|
19.047619047619047,
|
||||||
|
30
|
||||||
|
],
|
||||||
|
[
|
||||||
|
28.57142857142857,
|
||||||
|
30
|
||||||
|
],
|
||||||
|
[
|
||||||
|
38.095238095238095,
|
||||||
|
30
|
||||||
|
],
|
||||||
|
[
|
||||||
|
47.61904761904762,
|
||||||
|
30
|
||||||
|
],
|
||||||
|
[
|
||||||
|
57.14285714285714,
|
||||||
|
30
|
||||||
|
],
|
||||||
|
[
|
||||||
|
66.66666666666667,
|
||||||
|
30
|
||||||
|
],
|
||||||
|
[
|
||||||
|
76.19047619047619,
|
||||||
|
30
|
||||||
|
],
|
||||||
|
[
|
||||||
|
85.71428571428571,
|
||||||
|
30
|
||||||
|
],
|
||||||
|
[
|
||||||
|
95.23809523809524,
|
||||||
|
30
|
||||||
|
],
|
||||||
|
[
|
||||||
|
104.76190476190476,
|
||||||
|
30
|
||||||
|
],
|
||||||
|
[
|
||||||
|
114.28571428571428,
|
||||||
|
30
|
||||||
|
],
|
||||||
|
[
|
||||||
|
123.80952380952381,
|
||||||
|
30
|
||||||
|
],
|
||||||
|
[
|
||||||
|
133.33333333333334,
|
||||||
|
30
|
||||||
|
],
|
||||||
|
[
|
||||||
|
142.85714285714286,
|
||||||
|
30
|
||||||
|
],
|
||||||
|
[
|
||||||
|
152.38095238095238,
|
||||||
|
30
|
||||||
|
],
|
||||||
|
[
|
||||||
|
161.9047619047619,
|
||||||
|
30
|
||||||
|
],
|
||||||
|
[
|
||||||
|
171.42857142857142,
|
||||||
|
30
|
||||||
|
],
|
||||||
|
[
|
||||||
|
180.95238095238096,
|
||||||
|
30
|
||||||
|
],
|
||||||
|
[
|
||||||
|
190.47619047619048,
|
||||||
|
30
|
||||||
|
],
|
||||||
|
[
|
||||||
|
9.523809523809524,
|
||||||
|
40
|
||||||
|
],
|
||||||
|
[
|
||||||
|
19.047619047619047,
|
||||||
|
40
|
||||||
|
],
|
||||||
|
[
|
||||||
|
28.57142857142857,
|
||||||
|
40
|
||||||
|
],
|
||||||
|
[
|
||||||
|
38.095238095238095,
|
||||||
|
40
|
||||||
|
],
|
||||||
|
[
|
||||||
|
47.61904761904762,
|
||||||
|
40
|
||||||
|
],
|
||||||
|
[
|
||||||
|
57.14285714285714,
|
||||||
|
40
|
||||||
|
],
|
||||||
|
[
|
||||||
|
66.66666666666667,
|
||||||
|
40
|
||||||
|
],
|
||||||
|
[
|
||||||
|
76.19047619047619,
|
||||||
|
40
|
||||||
|
],
|
||||||
|
[
|
||||||
|
85.71428571428571,
|
||||||
|
40
|
||||||
|
],
|
||||||
|
[
|
||||||
|
95.23809523809524,
|
||||||
|
40
|
||||||
|
],
|
||||||
|
[
|
||||||
|
104.76190476190476,
|
||||||
|
40
|
||||||
|
],
|
||||||
|
[
|
||||||
|
114.28571428571428,
|
||||||
|
40
|
||||||
|
],
|
||||||
|
[
|
||||||
|
123.80952380952381,
|
||||||
|
40
|
||||||
|
],
|
||||||
|
[
|
||||||
|
133.33333333333334,
|
||||||
|
40
|
||||||
|
],
|
||||||
|
[
|
||||||
|
142.85714285714286,
|
||||||
|
40
|
||||||
|
],
|
||||||
|
[
|
||||||
|
152.38095238095238,
|
||||||
|
40
|
||||||
|
],
|
||||||
|
[
|
||||||
|
161.9047619047619,
|
||||||
|
40
|
||||||
|
],
|
||||||
|
[
|
||||||
|
171.42857142857142,
|
||||||
|
40
|
||||||
|
],
|
||||||
|
[
|
||||||
|
180.95238095238096,
|
||||||
|
40
|
||||||
|
],
|
||||||
|
[
|
||||||
|
190.47619047619048,
|
||||||
|
40
|
||||||
|
]
|
||||||
|
]
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
|
|
Loading…
Reference in New Issue