-
9.env.development
-
159src/api/library.js
-
BINsrc/assets/fonts/YouSheBiaoTiHei.ttf
-
BINsrc/assets/fonts/ZhenyanGB.ttf
-
14src/assets/fonts/fonts.css
-
88src/assets/iconfont/iconfont.css
-
1src/assets/iconfont/iconfont.js
-
135src/assets/iconfont/iconfont.json
-
55src/assets/iconfont/iconfont.svg
-
BINsrc/assets/iconfont/iconfont.ttf
-
BINsrc/assets/iconfont/iconfont.woff
-
BINsrc/assets/iconfont/iconfont.woff2
-
BINsrc/assets/images/bg2.png
-
BINsrc/assets/images/database-img1.png
-
BINsrc/assets/images/header-bg2.png
-
BINsrc/assets/images/map-hx-big.png
-
BINsrc/assets/images/map-hx-small2.png
-
BINsrc/assets/images/map-hx01.png
-
BINsrc/assets/images/map-hx02.png
-
BINsrc/assets/images/map_14.png
-
BINsrc/assets/images/pageOne-1.png
-
BINsrc/assets/images/pageOne-2.png
-
BINsrc/assets/images/pageOne-3.png
-
BINsrc/assets/images/pageOne-4.png
-
BINsrc/assets/images/pageOne-5.png
-
BINsrc/assets/images/pageOne-6.png
-
BINsrc/assets/images/wq.png
-
150src/assets/js/tagscloud.js
-
9src/assets/styles/font-some.css
-
243src/assets/styles/index.scss
-
2src/assets/styles/style.scss
-
3src/main.js
-
3src/utils/request.js
-
31src/views/index.vue
-
45src/views/map/index.vue
-
27src/views/pageFour/index.vue
-
186src/views/pageOne/index.vue
-
4vue.config.js
@ -1,95 +1,114 @@ |
|||||
import request from '@/utils/request' |
import request from '@/utils/request' |
||||
// import qs from 'qs'
|
|
||||
|
import qs from 'qs' |
||||
|
|
||||
// 总借阅量
|
|
||||
export function FetchHalfYearBorrowNum(params) { |
|
||||
|
// 获取初始化数据
|
||||
|
export function FetchInitSetting(params) { |
||||
return request({ |
return request({ |
||||
url: '/dxhtsg/getHalfYearBorrowNum', |
|
||||
method: 'get', |
|
||||
params: params |
|
||||
|
url: '/qyzt/initSetting' + '?' + qs.stringify(params, { indices: false }), |
||||
|
method: 'get' |
||||
}) |
}) |
||||
} |
} |
||||
|
|
||||
// 借阅排行榜
|
|
||||
export function FetchBorrowRank(params) { |
|
||||
|
// page1 云标签
|
||||
|
export function FetchHotSearch(params) { |
||||
return request({ |
return request({ |
||||
url: '/dxhtsg/borrowRank', |
|
||||
method: 'get', |
|
||||
params: params |
|
||||
|
url: '/qyzt/getHotSearch' + '?' + qs.stringify(params, { indices: false }), |
||||
|
method: 'get' |
||||
}) |
}) |
||||
} |
} |
||||
|
|
||||
// 阅读之星
|
|
||||
export function FetchBorrowStar(params) { |
|
||||
|
// page1 获取公众号总粉丝数
|
||||
|
export function FetchFansCount(params) { |
||||
return request({ |
return request({ |
||||
url: '/dxhtsg/borrowStar', |
|
||||
method: 'get', |
|
||||
params: params |
|
||||
|
url: '/qyzt/getfansCount' + '?' + qs.stringify(params, { indices: false }), |
||||
|
method: 'get' |
||||
}) |
}) |
||||
} |
} |
||||
|
|
||||
// 新书推荐
|
|
||||
export function FetchNewBookRecommend(params) { |
|
||||
|
// page1 新书推荐
|
||||
|
export function FetchNewBook(params) { |
||||
return request({ |
return request({ |
||||
url: '/dxhtsg/newBookRecommend', |
|
||||
method: 'get', |
|
||||
params: params |
|
||||
|
url: '/qyzt/getNewBook' + '?' + qs.stringify(params, { indices: false }), |
||||
|
method: 'get' |
||||
}) |
}) |
||||
} |
} |
||||
|
|
||||
// 通知公告
|
|
||||
export function FetchInitNotice(params) { |
|
||||
return request({ |
|
||||
url: '/dxhtsg/initNotice', |
|
||||
method: 'get', |
|
||||
params: params |
|
||||
}) |
|
||||
} |
|
||||
|
// // 借阅排行榜
|
||||
|
// export function FetchBorrowRank(params) {
|
||||
|
// return request({
|
||||
|
// url: '/dxhtsg/borrowRank',
|
||||
|
// method: 'get',
|
||||
|
// params: params
|
||||
|
// })
|
||||
|
// }
|
||||
|
|
||||
// 进馆人数
|
|
||||
export function FetchInitIntoNum(params) { |
|
||||
return request({ |
|
||||
url: '/dxhtsg/initIntoNum', |
|
||||
method: 'get', |
|
||||
params: params |
|
||||
}) |
|
||||
} |
|
||||
|
// // 阅读之星
|
||||
|
// export function FetchBorrowStar(params) {
|
||||
|
// return request({
|
||||
|
// url: '/dxhtsg/borrowStar',
|
||||
|
// method: 'get',
|
||||
|
// params: params
|
||||
|
// })
|
||||
|
// }
|
||||
|
|
||||
// 24小时借还量
|
|
||||
export function FetchHalfYearBRNum(params) { |
|
||||
return request({ |
|
||||
url: '/dxhtsg/getHalfYearBRNum', |
|
||||
method: 'get', |
|
||||
params: params |
|
||||
}) |
|
||||
} |
|
||||
|
// // 新书推荐
|
||||
|
// export function FetchNewBookRecommend(params) {
|
||||
|
// return request({
|
||||
|
// url: '/dxhtsg/newBookRecommend',
|
||||
|
// method: 'get',
|
||||
|
// params: params
|
||||
|
// })
|
||||
|
// }
|
||||
|
|
||||
// 大屏幕播放文件
|
|
||||
export function FetchShowFileList(params) { |
|
||||
return request({ |
|
||||
url: '/dxhtsg/showFileList', |
|
||||
method: 'get', |
|
||||
params: params |
|
||||
}) |
|
||||
} |
|
||||
|
// // 通知公告
|
||||
|
// export function FetchInitNotice(params) {
|
||||
|
// return request({
|
||||
|
// url: '/dxhtsg/initNotice',
|
||||
|
// method: 'get',
|
||||
|
// params: params
|
||||
|
// })
|
||||
|
// }
|
||||
|
|
||||
// 通过isbn获取图书封面
|
|
||||
export function FetchCoverByISBN(params) { |
|
||||
return request({ |
|
||||
url: '/dxhtsg/getCoverByISBN', |
|
||||
method: 'get', |
|
||||
params: params |
|
||||
// responseType: 'blob'
|
|
||||
}) |
|
||||
} |
|
||||
|
// // 进馆人数
|
||||
|
// export function FetchInitIntoNum(params) {
|
||||
|
// return request({
|
||||
|
// url: '/dxhtsg/initIntoNum',
|
||||
|
// method: 'get',
|
||||
|
// params: params
|
||||
|
// })
|
||||
|
// }
|
||||
|
|
||||
|
// // 24小时借还量
|
||||
|
// export function FetchHalfYearBRNum(params) {
|
||||
|
// return request({
|
||||
|
// url: '/dxhtsg/getHalfYearBRNum',
|
||||
|
// method: 'get',
|
||||
|
// params: params
|
||||
|
// })
|
||||
|
// }
|
||||
|
|
||||
|
// // 大屏幕播放文件
|
||||
|
// export function FetchShowFileList(params) {
|
||||
|
// return request({
|
||||
|
// url: '/dxhtsg/showFileList',
|
||||
|
// method: 'get',
|
||||
|
// params: params
|
||||
|
// })
|
||||
|
// }
|
||||
|
|
||||
|
// // 通过isbn获取图书封面
|
||||
|
// export function FetchCoverByISBN(params) {
|
||||
|
// return request({
|
||||
|
// url: '/dxhtsg/getCoverByISBN',
|
||||
|
// method: 'get',
|
||||
|
// params: params
|
||||
|
// // responseType: 'blob'
|
||||
|
// })
|
||||
|
// }
|
||||
|
|
||||
export default { |
export default { |
||||
FetchHalfYearBorrowNum, |
|
||||
FetchBorrowRank, |
|
||||
FetchBorrowStar, |
|
||||
FetchNewBookRecommend, |
|
||||
FetchInitNotice, |
|
||||
FetchInitIntoNum, |
|
||||
FetchHalfYearBRNum, |
|
||||
FetchShowFileList |
|
||||
|
FetchInitSetting, |
||||
|
FetchHotSearch, |
||||
|
FetchFansCount, |
||||
|
FetchNewBook |
||||
} |
} |
@ -1,88 +0,0 @@ |
|||||
@font-face { |
|
||||
font-family: "iconfont2"; /* Project id 3646564 */ |
|
||||
src: url('iconfont.woff2?t=1718094031775') format('woff2'), |
|
||||
url('iconfont.woff?t=1718094031775') format('woff'), |
|
||||
url('iconfont.ttf?t=1718094031775') format('truetype'), |
|
||||
url('iconfont.svg?t=1718094031775#iconfont') format('svg'); |
|
||||
} |
|
||||
|
|
||||
.iconfont { |
|
||||
font-family: "iconfont2" !important; |
|
||||
font-size: 16px; |
|
||||
font-style: normal; |
|
||||
-webkit-font-smoothing: antialiased; |
|
||||
-moz-osx-font-smoothing: grayscale; |
|
||||
} |
|
||||
|
|
||||
.icon-shouxie:before { |
|
||||
content: "\e63a"; |
|
||||
} |
|
||||
|
|
||||
.icon-jianpan1:before { |
|
||||
content: "\e63b"; |
|
||||
} |
|
||||
|
|
||||
.icon-weizhi:before { |
|
||||
content: "\e639"; |
|
||||
} |
|
||||
|
|
||||
.icon-youhua:before { |
|
||||
content: "\e635"; |
|
||||
} |
|
||||
|
|
||||
.icon-zuohua:before { |
|
||||
content: "\e638"; |
|
||||
} |
|
||||
|
|
||||
.icon-a-no21:before { |
|
||||
content: "\e636"; |
|
||||
} |
|
||||
|
|
||||
.icon-a-21:before { |
|
||||
content: "\e637"; |
|
||||
} |
|
||||
|
|
||||
.icon-jianpan:before { |
|
||||
content: "\e634"; |
|
||||
} |
|
||||
|
|
||||
.icon-guanbi:before { |
|
||||
content: "\e630"; |
|
||||
} |
|
||||
|
|
||||
.icon-zuo:before { |
|
||||
content: "\e631"; |
|
||||
} |
|
||||
|
|
||||
.icon-benjiatushu:before { |
|
||||
content: "\e632"; |
|
||||
} |
|
||||
|
|
||||
.icon-remen:before { |
|
||||
content: "\e633"; |
|
||||
} |
|
||||
|
|
||||
.icon-you:before { |
|
||||
content: "\e62f"; |
|
||||
} |
|
||||
|
|
||||
.icon-tongzhi:before { |
|
||||
content: "\e628"; |
|
||||
} |
|
||||
|
|
||||
.icon-a-no3:before { |
|
||||
content: "\e629"; |
|
||||
} |
|
||||
|
|
||||
.icon-a-no1:before { |
|
||||
content: "\e62b"; |
|
||||
} |
|
||||
|
|
||||
.icon-a-3:before { |
|
||||
content: "\e62d"; |
|
||||
} |
|
||||
|
|
||||
.icon-a-1:before { |
|
||||
content: "\e62e"; |
|
||||
} |
|
||||
|
|
1
src/assets/iconfont/iconfont.js
File diff suppressed because it is too large
View File
@ -1,135 +0,0 @@ |
|||||
{ |
|
||||
"id": "3646564", |
|
||||
"name": "东西湖图书馆", |
|
||||
"font_family": "iconfont", |
|
||||
"css_prefix_text": "icon-", |
|
||||
"description": "", |
|
||||
"glyphs": [ |
|
||||
{ |
|
||||
"icon_id": "32924518", |
|
||||
"name": "手写", |
|
||||
"font_class": "shouxie", |
|
||||
"unicode": "e63a", |
|
||||
"unicode_decimal": 58938 |
|
||||
}, |
|
||||
{ |
|
||||
"icon_id": "32924519", |
|
||||
"name": "键盘", |
|
||||
"font_class": "jianpan1", |
|
||||
"unicode": "e63b", |
|
||||
"unicode_decimal": 58939 |
|
||||
}, |
|
||||
{ |
|
||||
"icon_id": "32102019", |
|
||||
"name": "位置", |
|
||||
"font_class": "weizhi", |
|
||||
"unicode": "e639", |
|
||||
"unicode_decimal": 58937 |
|
||||
}, |
|
||||
{ |
|
||||
"icon_id": "31966175", |
|
||||
"name": "右滑", |
|
||||
"font_class": "youhua", |
|
||||
"unicode": "e635", |
|
||||
"unicode_decimal": 58933 |
|
||||
}, |
|
||||
{ |
|
||||
"icon_id": "31966176", |
|
||||
"name": "左滑", |
|
||||
"font_class": "zuohua", |
|
||||
"unicode": "e638", |
|
||||
"unicode_decimal": 58936 |
|
||||
}, |
|
||||
{ |
|
||||
"icon_id": "31879702", |
|
||||
"name": "no.2", |
|
||||
"font_class": "a-no21", |
|
||||
"unicode": "e636", |
|
||||
"unicode_decimal": 58934 |
|
||||
}, |
|
||||
{ |
|
||||
"icon_id": "31879708", |
|
||||
"name": "2", |
|
||||
"font_class": "a-21", |
|
||||
"unicode": "e637", |
|
||||
"unicode_decimal": 58935 |
|
||||
}, |
|
||||
{ |
|
||||
"icon_id": "31879044", |
|
||||
"name": "键盘", |
|
||||
"font_class": "jianpan", |
|
||||
"unicode": "e634", |
|
||||
"unicode_decimal": 58932 |
|
||||
}, |
|
||||
{ |
|
||||
"icon_id": "31859389", |
|
||||
"name": "关闭", |
|
||||
"font_class": "guanbi", |
|
||||
"unicode": "e630", |
|
||||
"unicode_decimal": 58928 |
|
||||
}, |
|
||||
{ |
|
||||
"icon_id": "31859390", |
|
||||
"name": "左", |
|
||||
"font_class": "zuo", |
|
||||
"unicode": "e631", |
|
||||
"unicode_decimal": 58929 |
|
||||
}, |
|
||||
{ |
|
||||
"icon_id": "31859393", |
|
||||
"name": "本架图书", |
|
||||
"font_class": "benjiatushu", |
|
||||
"unicode": "e632", |
|
||||
"unicode_decimal": 58930 |
|
||||
}, |
|
||||
{ |
|
||||
"icon_id": "31859394", |
|
||||
"name": "热门", |
|
||||
"font_class": "remen", |
|
||||
"unicode": "e633", |
|
||||
"unicode_decimal": 58931 |
|
||||
}, |
|
||||
{ |
|
||||
"icon_id": "31859388", |
|
||||
"name": "右", |
|
||||
"font_class": "you", |
|
||||
"unicode": "e62f", |
|
||||
"unicode_decimal": 58927 |
|
||||
}, |
|
||||
{ |
|
||||
"icon_id": "31804863", |
|
||||
"name": "通知", |
|
||||
"font_class": "tongzhi", |
|
||||
"unicode": "e628", |
|
||||
"unicode_decimal": 58920 |
|
||||
}, |
|
||||
{ |
|
||||
"icon_id": "31804864", |
|
||||
"name": "no.3", |
|
||||
"font_class": "a-no3", |
|
||||
"unicode": "e629", |
|
||||
"unicode_decimal": 58921 |
|
||||
}, |
|
||||
{ |
|
||||
"icon_id": "31804866", |
|
||||
"name": "no.1", |
|
||||
"font_class": "a-no1", |
|
||||
"unicode": "e62b", |
|
||||
"unicode_decimal": 58923 |
|
||||
}, |
|
||||
{ |
|
||||
"icon_id": "31804868", |
|
||||
"name": "3", |
|
||||
"font_class": "a-3", |
|
||||
"unicode": "e62d", |
|
||||
"unicode_decimal": 58925 |
|
||||
}, |
|
||||
{ |
|
||||
"icon_id": "31804869", |
|
||||
"name": "1", |
|
||||
"font_class": "a-1", |
|
||||
"unicode": "e62e", |
|
||||
"unicode_decimal": 58926 |
|
||||
} |
|
||||
] |
|
||||
} |
|
55
src/assets/iconfont/iconfont.svg
File diff suppressed because it is too large
View File
After Width: 1920 | Height: 1080 | Size: 457 KiB |
Before Width: 503 | Height: 512 | Size: 408 KiB |
Before Width: 1446 | Height: 100 | Size: 85 KiB |
Before Width: 905 | Height: 723 | Size: 86 KiB |
Before Width: 905 | Height: 905 | Size: 46 KiB |
Before Width: 905 | Height: 723 | Size: 97 KiB |
Before Width: 1306 | Height: 1037 | Size: 133 KiB |
Before Width: 196 | Height: 2 | Size: 1.0 KiB |
After Width: 267 | Height: 102 | Size: 24 KiB |
After Width: 267 | Height: 102 | Size: 24 KiB |
After Width: 391 | Height: 314 | Size: 108 KiB |
After Width: 432 | Height: 275 | Size: 127 KiB |
After Width: 31 | Height: 31 | Size: 3.5 KiB |
After Width: 610 | Height: 163 | Size: 11 KiB |
After Width: 391 | Height: 314 | Size: 39 KiB |
@ -0,0 +1,150 @@ |
|||||
|
// JavaScript Document
|
||||
|
|
||||
|
var radius = 160 |
||||
|
var d = 200 |
||||
|
var dtr = Math.PI / 180 |
||||
|
var mcList = [] |
||||
|
var lasta = 1 |
||||
|
var lastb = 1 |
||||
|
var distr = true |
||||
|
var tspeed = 4 |
||||
|
var size = 200 |
||||
|
var mouseX = 0 |
||||
|
var mouseY = 20 |
||||
|
var howElliptical = 1 |
||||
|
var aA = null |
||||
|
var oDiv = null |
||||
|
window.onload = function() { |
||||
|
var i = 0 |
||||
|
var oTag = null |
||||
|
oDiv = document.getElementById('tagscloud') |
||||
|
aA = oDiv.getElementsByTagName('a') |
||||
|
for (i = 0; i < aA.length; i++) { |
||||
|
oTag = {} |
||||
|
aA[i].onmouseover = (function(obj) { |
||||
|
return function() { |
||||
|
obj.on = true |
||||
|
this.style.zIndex = 9999 |
||||
|
this.style.color = '#fff' |
||||
|
this.style.padding = '5px 5px' |
||||
|
this.style.filter = 'alpha(opacity=100)' |
||||
|
this.style.opacity = 1 |
||||
|
} |
||||
|
})(oTag) |
||||
|
aA[i].onmouseout = (function(obj) { |
||||
|
return function() { |
||||
|
obj.on = false |
||||
|
this.style.zIndex = obj.zIndex |
||||
|
this.style.color = '#fff' |
||||
|
this.style.padding = '5px' |
||||
|
this.style.filter = 'alpha(opacity=' + 100 * obj.alpha + ')' |
||||
|
this.style.opacity = obj.alpha |
||||
|
this.style.zIndex = obj.zIndex |
||||
|
} |
||||
|
})(oTag) |
||||
|
oTag.offsetWidth = aA[i].offsetWidth |
||||
|
oTag.offsetHeight = aA[i].offsetHeight |
||||
|
mcList.push(oTag) |
||||
|
} |
||||
|
sineCosine(0, 0, 0) |
||||
|
positionAll(); |
||||
|
(function() { |
||||
|
update() |
||||
|
setTimeout(arguments.callee, 40) |
||||
|
})() |
||||
|
} |
||||
|
function update() { |
||||
|
var a; var b; var c = 0 |
||||
|
a = (Math.min(Math.max(-mouseY, -size), size) / radius) * tspeed |
||||
|
b = (-Math.min(Math.max(-mouseX, -size), size) / radius) * tspeed |
||||
|
lasta = a |
||||
|
lastb = b |
||||
|
if (Math.abs(a) <= 0.01 && Math.abs(b) <= 0.01) { |
||||
|
return |
||||
|
} |
||||
|
sineCosine(a, b, c) |
||||
|
for (var i = 0; i < mcList.length; i++) { |
||||
|
if (mcList[i].on) { |
||||
|
continue |
||||
|
} |
||||
|
var rx1 = mcList[i].cx |
||||
|
var ry1 = mcList[i].cy * ca + mcList[i].cz * (-sa) |
||||
|
var rz1 = mcList[i].cy * sa + mcList[i].cz * ca |
||||
|
|
||||
|
var rx2 = rx1 * cb + rz1 * sb |
||||
|
var ry2 = ry1 |
||||
|
var rz2 = rx1 * (-sb) + rz1 * cb |
||||
|
|
||||
|
var rx3 = rx2 * cc + ry2 * (-sc) |
||||
|
var ry3 = rx2 * sc + ry2 * cc |
||||
|
var rz3 = rz2 |
||||
|
|
||||
|
mcList[i].cx = rx3 |
||||
|
mcList[i].cy = ry3 |
||||
|
mcList[i].cz = rz3 |
||||
|
|
||||
|
per = d / (d + rz3) |
||||
|
|
||||
|
mcList[i].x = (howElliptical * rx3 * per) - (howElliptical * 2) |
||||
|
mcList[i].y = ry3 * per |
||||
|
mcList[i].scale = per |
||||
|
var alpha = per |
||||
|
alpha = (alpha - 0.6) * (10 / 6) |
||||
|
mcList[i].alpha = alpha * alpha * alpha - 0.2 |
||||
|
mcList[i].zIndex = Math.ceil(100 - Math.floor(mcList[i].cz)) |
||||
|
} |
||||
|
doPosition() |
||||
|
} |
||||
|
function positionAll() { |
||||
|
var phi = 0 |
||||
|
var theta = 0 |
||||
|
var max = mcList.length |
||||
|
for (var i = 0; i < max; i++) { |
||||
|
if (distr) { |
||||
|
phi = Math.acos(-1 + (2 * (i + 1) - 1) / max) |
||||
|
theta = Math.sqrt(max * Math.PI) * phi |
||||
|
} else { |
||||
|
phi = Math.random() * (Math.PI) |
||||
|
theta = Math.random() * (2 * Math.PI) |
||||
|
} |
||||
|
// 坐标变换
|
||||
|
mcList[i].cx = radius * Math.cos(theta) * Math.sin(phi) |
||||
|
mcList[i].cy = radius * Math.sin(theta) * Math.sin(phi) |
||||
|
mcList[i].cz = radius * Math.cos(phi) |
||||
|
|
||||
|
aA[i].style.left = mcList[i].cx + oDiv.offsetWidth / 2 - mcList[i].offsetWidth / 2 + 'px' |
||||
|
aA[i].style.top = mcList[i].cy + oDiv.offsetHeight / 2 - mcList[i].offsetHeight / 2 + 'px' |
||||
|
} |
||||
|
} |
||||
|
function doPosition() { |
||||
|
var l = oDiv.offsetWidth / 2 |
||||
|
var t = oDiv.offsetHeight / 2 |
||||
|
for (var i = 0; i < mcList.length; i++) { |
||||
|
if (mcList[i].on) { |
||||
|
continue |
||||
|
} |
||||
|
var aAs = aA[i].style |
||||
|
if (mcList[i].alpha > 0.1) { |
||||
|
if (aAs.display !== '') { aAs.display = '' } |
||||
|
} else { |
||||
|
if (aAs.display !== 'none') { aAs.display = 'none' } |
||||
|
continue |
||||
|
} |
||||
|
aAs.left = mcList[i].cx + l - mcList[i].offsetWidth / 2 + 'px' |
||||
|
aAs.top = mcList[i].cy + t - mcList[i].offsetHeight / 2 + 'px' |
||||
|
// aAs.fontSize=Math.ceil(12*mcList[i].scale/2)+8+'px';
|
||||
|
// aAs.filter="progid:DXImageTransform.Microsoft.Alpha(opacity="+100*mcList[i].alpha+")";
|
||||
|
aAs.filter = 'alpha(opacity=' + 100 * mcList[i].alpha + ')' |
||||
|
aAs.zIndex = mcList[i].zIndex |
||||
|
aAs.opacity = mcList[i].alpha |
||||
|
} |
||||
|
} |
||||
|
function sineCosine(a, b, c) { |
||||
|
sa = Math.sin(a * dtr) |
||||
|
ca = Math.cos(a * dtr) |
||||
|
sb = Math.sin(b * dtr) |
||||
|
cb = Math.cos(b * dtr) |
||||
|
sc = Math.sin(c * dtr) |
||||
|
cc = Math.cos(c * dtr) |
||||
|
} |
||||
|
|