three实现三维材质玻璃折射的文字代码
代码语言:html
所属分类:三维
代码描述:three实现三维材质玻璃折射的文字代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<link rel='stylesheet' href='https://fonts.googleapis.com/css2?family=Paytone+One&display=swap'>
<style>
body {
margin: 0;
user-select: none;
}
body > canvas {
position: fixed;
width: 100%;
height: 100%;
top: 0;
left: 0;
user-select: none;
}
</style>
</head>
<body translate="no">
<script async type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/es-module-shims.1.6.3.js"></script>
<script type="importmap">
{
"imports": {
"three": "//repo.bfw.wiki/bfwrepo/js/module/three/build/168/three.module.js",
"three/addons/": "//repo.bfw.wiki/bfwrepo/js/module/three/examples/164/jsm/"
}
}
</script>
<script type="module">
import * as THREE from "three";
import { FontLoader } from "three/addons/loaders/FontLoader.js";
import { TextGeometry } from "three/addons/geometries/TextGeometry.js";
import { OrbitControls } from "three/addons/controls/OrbitControls.js";
import { easing } from "//repo.bfw.wiki/bfwrepo/js/module/maath.js";
const vertexShader = `varying vec3 worldNormal;
varying vec3 eyeVector;
void main() {
vec4 worldPos = modelMatrix * vec4(position, 1.0);
vec4 mvPosition = viewMatrix * worldPos;
gl_Position = projectionMatrix * mvPosition;
worldNormal = normalize(modelMatrix * vec4(normal, 0.0)).xyz;
eyeVector = normalize(worldPos.xyz - cameraPosition);
}
`;
const fragmentShader = `uniform float uIorR;
uniform float uIorY;
uniform float uIorG;
uniform float uIorC;
uniform float uIorB;
uniform float uIorP;
uniform float uSaturation;
uniform float uChromaticAberration;
uniform float uRefractPower;
uniform float uFresnelPower;
uniform float uShininess;
uniform float uDiffuseness;
uniform vec3 uLight;
uniform vec2 winResolution;
uniform sampler2D uTexture;
varying vec3 worldNormal;
varying vec3 eyeVector;
vec3 sat(vec3 rgb, float adjustment) {
const vec3 W = vec3(0.2125, 0.7154, 0.0721);
vec3 intensity = vec3(dot(rgb, W));
return mix(intensity, rgb, adjustment);
}
float fresnel(vec3 eyeVector, vec3 worldNormal, float power) {
float fresnelFactor = abs(dot(eyeVector, worldNormal));
float inversefresnelFactor = 1.0 - fresnelFactor;
return pow(inversefresnelFactor, power);
}
float specular(vec3 light, float shininess, float diffuseness) {
vec3 normal = worldNormal;
vec3 lightVector = normalize(-light);
vec3 halfVector = normalize(eyeVector + lightVector);
float NdotL = dot(normal, lightVector);
float NdotH = dot(normal, halfVector);
float kDiffuse = max(0.0, NdotL);
float NdotH2 = NdotH * NdotH;
float kSpecular = pow(NdotH2, shininess);
return kSpecular + kDiffuse * diffuseness;
}
const int LOOP = 16;
void main() {
float iorRatioRed = 1.0/uIorR;
float iorRatioGreen = 1.0/uIorG;
float iorRatioBlue = 1.0/uIorB;
vec2 uv = gl_FragCoord.xy / winResolution.xy;
vec3 normal = worldNormal;
vec3 color = vec3(0.0);
for ( int i = 0; i < LOOP; i ++ ) {
float slide = float(i) / float(LOOP) * 0.1;
vec3 refractVecR = refract(eyeVector, normal,(1.0/uIorR));
vec3 refractVecY = refract(eyeVector, normal, (1.0/uIorY));
vec3 refractVecG = refract(eyeVector, normal, (1.0/uIorG));
vec3 refractVecC = refract(eyeVector, normal, (1.0/uIorC));
vec3 refractVecB = refract(eyeVector, normal, (1.0/uIorB));
vec3 refractVecP = refract(eyeVector, normal, (1.0/uIorP));
float r = texture2D(uTexture, uv + refractVecR.xy * (uRefractPower + slide * 1.0) * uChromaticAberration).x * 0.5;
float y = (texture2D(uTexture, uv + refractVecY.xy * (uRefractPower + slide * 1.0) * uChromaticAberration).x * 2.0 +
texture2D(uTexture, uv + refractVecY.xy * (uRefractPower + slide * 1.0) * uChromaticAberration).y * 2.0 -
texture2D(uTexture, uv + refractVecY.xy * (uRefractPower + slide * 1.0) * uChromaticAberration).z) / 6.0;
float g = texture2D(uTexture, uv + refractVecG.xy * (uRefractPower + slide * 2.0) * uChromaticAberration).y * 0.5;
float c = (texture2D(uTexture, uv + refractVecC.xy * (uRefractPower + slide * 2.5) * uChromaticAberration).y * 2.0 +
texture2D(uTexture, uv + refractVecC.xy * (uRefractPower + slide * 2.5) * uChromaticAberration).z * 2.0 -
texture2D(uTexture, uv + refractVecC.xy * (uRefractPower + slide * 2.5) * uChromaticAberration).x) / 6.0;
float b = texture2D(uTexture, uv + refractVecB.xy * (uRefractPower + slide * 3.0) * uChromaticAberration).z * 0.5;
float p = (texture2D(uTexture, uv + refractVecP.xy * (uRefractPower + slide * 1.0) * uChromaticAberration).z * 2.0 +
texture2D(uTexture, uv + refractVecP.xy * (uRefractPower + slide * 1.0) * uChromaticAberration).x * 2.0 -
texture2D(uTexture, uv + refractVecP.xy * (uRefractPower + slide * 1.0) * uChromaticAberration).y) / 6.0;
float R = r + (2.0*p + 2.0*y - c)/3.0;
float G = g + (2.0*y + 2.0*c - p)/3.0;
float B = b + (2.0*c + 2.0*p - y)/3.0;
color.r += R;
color.g += G;
color.b += B;
color = sat(color, uSaturation);
}
// Divide by the number of layers to normalize colors (rgb values can be worth up to the value of LOOP)
color /= float( LOOP );
// Specular
float specularLight = specular(uLight, uShininess, uDiffuseness);
color += specularLight;
// Fresnel
float f = fresnel(eyeVector, normal, uFresnelPower);
color.rgb += f * vec3(1.0);
gl_FragColor = vec4(color, 1.0);
#include <tonemapping_fragment>
#include <colorspace_fragment>
}`;
class App {
scene = new THREE.Scene();
renderer = new THREE.WebGLRenderer({ antialias: false });
coords = new THREE.Vector2(0, 0);
camera = new THREE.PerspectiveCamera(
70,
window.innerWidth / window.innerHeight,
0.01,
1000
);
constructor() {
this.init();
this.setComponents();
}
init() {
this.scene.background = 0xff0000;
this.renderer.setAnimationLoop(this.animate.bind(this));
this.handleResize();
window.addEventListener("resize", this.handleResize.bind(this), false);
document.body.appendChild(this.renderer.domElement);
this.camera.position.z = 3;
document.body.addEventListener(
"mousemove",
this.onDocumentMouseMove.bind(this),
false
);
}
onDocumentMouseMove(event) {
this.setCoords(event.clientX, event.clientY);
}
setCoords(x, y) {
if (this.timer) clearTimeout(this.timer);
this.coords.set(
(x / window.innerWidth) * 2 - 1,
-(y / window.innerHeight) * 2 + 1
);
this.mouseMoved = true;
this.timer = setTimeout(() => {
this.mouseMoved = false;
}, 100);
}
setComponents() {
this.controls = new OrbitControls(this.camera, this.renderer.domElement);
try {
this.holder = new THREE.Group();
const geo = new THREE.IcosahedronGeometry(0.5, 8);
const mat = new THREE.MeshBasicMaterial({ color: 0xffffff });
const ico = new THREE.Mesh(geo, mat);
const w = 1000;
for (let i = 0; i < w; i++) {
const icot = ico.clone();
icot.position.x = (i % 50) * 2.5 - 100;
icot.position.y = Math.round(i / 25) * 2.5 - 50;
icot.position.z = -40;
icot.layers.set(1);
this.holder.add(icot);
}
this.scene.add(this.holder);
} catch (e) {
console.log(e);
}
this.target = new THREE.WebGLRenderTarget(
window.innerWidth * window.devicePixelRatio,
window.innerHeight * window.devicePixelRatio,
{
minFilter: THREE.LinearFilter,
magFilter: THREE.LinearFilter,
type: THREE.HalfFloatType
}
);
this.backTarget = new THREE.WebGLRenderTarget(
window.innerWidth * window.devicePixelRatio,
window.innerHeight * window.devicePixelRatio,
{
minFilter: THREE.LinearFilter,
magFilter: THREE.LinearFilter,
type: THREE.HalfFloatType
}
);
const font = new FontLoader().parse(json);
const textGeometry = new TextGeometry("Prisme.", {
font,
size: 0.5,
height: 0.1,
curveSegments: 12,
bevelEnabled: true,
bevelSize: 0.02,
textAlign: "center",
bevelThickness: 0.01,
bevelOffset: 0,
bevelSegments: 10
});
const material = new THREE.ShaderMaterial({
vertexShader,
fragmentShader,
uniforms: {
uTexture: {
value: null
},
uIorR: { value: 1.15 },
uIorY: { value: 1.16 },
uIorG: { value: 1.18 },
uIorC: { value: 1.22 },
uIorB: { value: 1.22 },
uIorP: { value: 1.22 },
uRefractPower: {
value: 0.2
},
uChromaticAberration: {
value: 0.6
},
uSaturation: { value: 1.08 },
uShininess: { value: 40.0 },
uDiffuseness: { value: 0.2 },
uFresnelPower: { value: 8.0 },
uLight: {
value: new THREE.Vector3(-1.0, 1.0, 1.0)
},
winResolution: {
value: new THREE.Vector2(window.innerWidth, window.innerHeight)
}
}
});
textGeometry.computeVertexNormals();
this.text = new THREE.Mesh(textGeometry, material);
textGeometry.center();
this.scene.add(this.text);
}
handleResize() {
const { innerWidth: width, innerHeight: height } = window;
const { camera, renderer } = this;
camera.aspect = width / height;
camera.updateProjectionMatrix();
renderer.setSize(width, height);
if (this.text) {
console.log(this.text);
this.text.material.uniforms.winResolution.value.set(
window.innerWidth,
window.innerHeight
);
}
}
animate(t) {
const delta = t - parseFloat(this.pt);
this.pt = t;
// this damping approach is super interesting it comes from https://codesandbox.io/p/sandbox/4j2q2
easing.damp3(
this.text.position,
[
this.text.position.x,
this.text.position.y,
(1.0 - Math.cos(this.coords.x)) * 2.25
],
0.2,
delta / 1000
);
easing.damp3(
this.text.rotation,
[
this.coords.y * 3.14 * 0.0314 * 0.9,
this.coords.x * 3.14 * 0.0314 * 1.4,
0
],
0.2,
delta / 1000
);
// console.log(this.text.rotation)
this.holder.rotation.z += 0.001;
this.camera.layers.disableAll();
this.camera.layers.enable(1);
this.text.visible = false;
this.renderer.setRenderTarget(this.backTarget);
this.renderer.render(this.scene, this.camera);
this.camera.layers.enableAll();
this.text.material.side = THREE.BackSide;
this.text.material.uniforms.uTexture.value = this.backTarget.texture;
this.text.visible = true;
this.renderer.setRenderTarget(this.target);
this.renderer.render(this.scene, this.camera);
this.camera.layers.disable(1);
this.text.material.uniforms.uTexture.value = this.target.texture;
this.text.material.side = THREE.FrontSide;
this.renderer.setRenderTarget(null);
this.renderer.render(this.scene, this.camera);
}
}
const json = {
glyphs: {
0: {
ha: 1319,
x_min: 68,
x_max: 1251,
o:
"m 660 -28 q 224 117 381 -28 q 68 500 68 263 q 224 879 68 735 q 660 1024 381 1024 q 1094 878 938 1024 q 1251 500 1251 733 q 1094 118 1251 264 q 660 -28 938 -28 m 417 500 q 480 315 417 378 q 660 251 543 251 q 839 315 775 251 q 903 500 903 378 q 840 683 903 619 q 660 746 776 746 q 480 683 543 746 q 417 500 417 621 z "
},
1: {
ha: 1125,
x_min: 82,
x_max: 1043,
o:
"m 82 0 l 82 250 l 399 250 l 399 733 l 150 657 l 82 896 l 432 997 l 725 997 l 725 250 l 1043 250 l 1043 0 l 82 0 z "
},
2: {
ha: 1257,
x_min: 82,
x_max: 1175,
o:
"m 82 143 q 124 292 82 226 q 232 399 165 358 q 378 471 299 439 q 539 526 458 503 q 686 574 619 550 q 794 629 753 597 q 836 703 836 661 q 798 775 836 751 q 668 799 760 799 q 438 646 438 799 l 97 646 q 156 819 107 744 q 283 936 204 893 q 460 1000 363 979 q 676 1021 558 1021 q 1043 944 911 1021 q 1175 721 1175 868 q 1110 543 1175 617 q 947 431 1044 469 q 751 366 850 393 q 573 311 653 339 q 476 250 493 283 l 1161 250 l 1161 0 l 82 0 l 82 143 z "
},
3: {
ha: 1267,
x_min: 68,
x_max: 1200,
o:
"m 654 -28 q 228 65 372 -28 q 68 351 85 158 l 394 351 q 458 242 394 276 q 651 208 521 208 q 813 234 763 208 q 864 319 864 260 q 818 399 864 375 q 668 422 772 422 l 582 422 l 582 604 l 660 604 q 804 628 758 606 q 850 703 850 651 q 802 776 850 754 q 644 799 754 799 q 453 763 513 799 q 394 646 394 726 l 82 646 q 671 1021 115 1021 q 1056 947 926 1021 q 1186 729 1186 872 q 1029 514 1186 574 q 1200 288 1200 453 q 654 -28 1200 -28 z "
},
4: {
ha: 1344,
x_min: 82,
x_max: 1263,
o:
"m 767 0 l 767 158 l 82 158 l 82 393 l 767 997 l 1093 997 l 1093 393 l 1263 393 l 1263 158 l 1093 158 l 1093 0 l 767 0 m 415 393 l 767 393 l 767 715 l 415 393 z "
},
5: {
ha: 1231,
x_min: 67,
x_max: 1164,
o:
"m 635 -28 q 235 63 392 -28 q 67 331 79 153 l 410 331 q 622 210 436 210 q 821 354 821 210 q 776 453 821 418 q 647 489 732 489 q 535 472 583 489 q 428 413 486 456 l 125 471 l 207 999 l 1083 999 l 1083 760 l 471 760 l 450 610 q 765 674 588 674 q 1059 588 954 674 q 1164 349 1164 503 q 1026 73 1164 174 q 635 -28 889 -28 z "
},
6: {
ha: 1288,
x_min: 81,
x_max: 1210,
o:
"m 664 -28 q 238 108 394 -28 q 81 478 81 244 q 259 874 81 728 q 740 1021 438 1021 q 1126 990 940 1021 l 1126 754 q 771 782 944 782 q 446 608 515 782 q 765 678 590 678 q 1090 588 971 678 q 1210 344 1210 497 q 1062 73 1210 174 q 664 -28 914 -28 m 425 350 q 484 248 425 286 q 642 210 543 210 q 806 249 744 210 q 867 353 867 288 q 806 452 867 415 q 644 489 746 489 q 485 451 544 489 q 425 350 425 413 z "
},
7: {
ha: 1193,
x_min: 85,
x_max: 1108,
o:
"m 299 0 q 756 750 299 490 l 85 750 l 85 997 l 1108 997 l 1108 750 q 737 410 849 588 q 625 0 625 232 l 299 0 z "
},
8: {
ha: 1349,
x_min: 82,
x_max: 1265,
o:
"m 674 -28 q 387 -7 504 -28 q 203 56 269 14 q 110 150 138 97 q 82 274 82 203 q 356 524 82 465 q 165 756 165 586 q 296 952 165 883 q 674 1021 426 1021 q 1051 952 921 1021 q 1181 756 1181 883 q 990 524 1181 585 q 1265 274 1265 467 q 1237 150 1265 203 q 1143 56 1208 97 q 960 -6 1078 15 q 674 -28 842 -28 m 435 297 q 674 183 435 183 q 913 297 913 183 q 674 410 913 410 q 492 382 549 410 q 435 297 435 354 m 524 801 q 501 789 524 801 q 479 732 479 778 q 524 664 479 686 q 674 642 568 642 q 824 664 781 642 q 868 732 868 686 q 824 801 868 778 q 674 824 779 824 q 524 801 568 824 z "
},
9: {
ha: 1288,
x_min: 78,
x_max: 1207,
o:
"m 624 1021 q 1050 885 893 1021 q 1207 515 1207 749 q 1028 119 1207 265 q 547 -28 850 -28 q 161 3 347 -28 l 161 239 q 517 211 343 211 q 842 385 772 211 q 522 315 697 315 q 197 406 317 315 q 78 649 78 496 q 226 920 78 819 q 624 1021 374 1021 m 421 640 q 481 541 421 578 q 643 504 542 504 q 803 542 743 504 q 863 643 863 581 q 803 745 863 707 q 646 783 744 783 q 482 744 543 783 q 421 640 421 706 z "
},
"": {
ha: 722,
x_min: 135,
x_max: 592,
o:
"m 592 1111 l 592 -333 l 135 -333 l 135 1111 l 592 1111 m 242 -233 l 481 -233 l 481 -186 l 333 -186 l 435 -118 l 481 -118 l 481 -71 l 242 -71 l 242 -118 l 342 -118 l 242 -186 l 242 -233 m 242 -37 l 481 -37 l 481 126 l 242 126 l 242 -37 m 242 213 l 481 213 l 481 376 l 336 376 l 336 294 l 386 294 l 386 328 l 433 328 l 433 260 l 289 260 l 289 376 l 242 376 l 242 213 m 242 408 l 481 408 l 481 553 l 433 553 l 433 457 l 242 457 l 242 408 m 242 490 l 386 490 l 386 592 l 481 592 l 481 639 l 242 639 l 242 592 l 336 592 l 336 538 l 242 538 l 242 490 m 242 678 l 481 678 l 481 726 l 386 726 l 386 828 l 242 828 l 242 678 m 242 865 l 481 865 l 481 914 l 386 914 l 386 967 l 481 967 l 481 1014 l 243 1014 l 243 967 l 336 967 l 336 914 l 242 914 l 242 865 m 289 11 l 289 78 l 433 78 l 433 11 l 289 11 m 289 726 l 289 779 l 336 779 l 336 726 l 289 726 z "
},
"²": {
ha: 722,
x_min: 135,
x_max: 592,
o:
"m 592 1111 l 592 -333 l 135 -333 l 135 1111 l 592 1111 m 242 -233 l 481 -233 l 481 -186 l 333 -186 l 435 -118 l 481 -118 l 481 -71 l 242 -71 l 242 -118 l 342 -118 l 242 -186 l 242 -233 m 242 -37 l 481 -37 l 481 126 l 242 126 l 242 -37 m 242 213 l 481 213 l 481 376 l 336 376 l 336 294 l 386 294 l 386 328 l 433 328 l 433 260 l 289 260 l 289 376 l 242 376 l 242 213 m 242 408 l 481 408 l 481 553 l 433 553 l 433 457 l 242 457 l 242 408 m 242 490 l 386 490 l 386 592 l 481 592 l 481 639 l 242 639 l 242 592 l 336 592 l 336 538 l 242 538 l 242 490 m 242 678 l 481 678 l 481 726 l 386 726 l 386 828 l 242 828 l 242 678 m 242 865 l 481 865 l 481 914 l 386 914 l 386 967 l 481 967 l 481 1014 l 243 1014 l 243 967 l 336 967 l 336 914 l 242 914 l 242 865 m 289 11 l 289 78 l 433 78 l 433 11 l 289 11 m 289 726 l 289 779 l 336 779 l 336 726 l 289 726 z "
},
"³": {
ha: 722,
x_min: 135,
x_max: 592,
o:
"m 592 1111 l 592 -333 l 135 -333 l 135 1111 l 592 1111 m 242 -233 l 481 -233 l 481 -186 l 333 -186 l 435 -118 l 481 -118 l 481 -71 l 242 -71 l 242 -118 l 342 -118 l 242 -186 l 242 -233 m 242 -37 l 481 -37 l 481 126 l 242 126 l 242 -37 m 242 213 l 481 213 l 481 376 l 336 376 l 336 294 l 386 294 l 386 328 l 433 328 l 433 260 l 289 260 l 289 376 l 242 376 l 242 213 m 242 408 l 481 408 l 481 553 l 433 553 l 433 457 l 242 457 l 242 408 m 242 490 l 386 490 l 386 592 l 481 592 l 481 639 l 242 639 l 242 592 l 336 592 l 336 538 l 242 538 l 242 490 m 242 678 l 481 678 l 481 726 l 386 726 l 386 828 l 242 828 l 242 678 m 242 865 l 481 865 l 481 914 l 386 914 l 386 967 l 481 967 l 481 1014 l 243 1014 l 243 967 l 336 967 l 336 914 l 242 914 l 242 865 m 289 11 l 289 78 l 433 78 l 433 11 l 289 11 m 289 726 l 289 779 l 336 779 l 336 726 l 289 726 z "
},
µ: {
ha: 722,
x_min: 135,
x_max: 592,
o:
"m 592 1111 l 592 -333 l 135 -333 l 135 1111 l 592 1111 m 242 -233 l 481 -233 l 481 -186 l 333 -186 l 435 -118 l 481 -118 l 481 -71 l 242 -71 l 242 -118 l 342 -118 l 242 -186 l 242 -233 m 242 -37 l 481 -37 l 481 126 l 242 126 l 242 -37 m 242 213 l 481 213 l 481 376 l 336 376 l 336 294 l 386 294 l 386 328 l 433 328 l 433 260 l 289 260 l 289 376 l 242 376 l 242 213 m 242 408 l 481 408 l 481 553 l 433 553 l 433 457 l 242 457 l 242 408 m 242 490 l 386 490 l 386 592 l 481 592 l 481 639 l 242 639 l 242 592 l 336 592 l 336 538 l 242 538 l 242 490 m 242 678 l 481 678 l 481 726 l 386 726 l 386 828 l 242 828 l 242 678 m 242 865 l 481 865 l 481 914 l 386 914 l 386 967 l 481 967 l 481 1014 l 243 1014 l 243 967 l 336 967 l 336 914 l 242 914 l 242 865 m 289 11 l 289 78 l 433 78 l 433 11 l 289 11 m 289 726 l 289 779 l 336 779 l 336 726 l 289 726 z "
},
"¹": {
ha: 722,
x_min: 135,
x_max: 592,
o:
"m 592 1111 l 592 -333 l 135 -333 l 135 1111 l 592 1111 m 242 -233 l 481 -233 l 481 -186 l 333 -186 l 435 -118 l 481 -118 l 481 -71 l 242 -71 l 242 -118 l 342 -118 l 242 -186 l 242 -233 m 242 -37 l 481 -37 l 481 126 l 242 126 l 242 -37 m 242 213 l 481 213 l 481 376 l 336 376 l 336 294 l 386 294 l 386 328 l 433 328 l 433 260 l 289 260 l 289 376 l 242 376 l 242 213 m 242 408 l 481 408 l 481 553 l 433 553 l 433 457 l 242 457 l 242 408 m 242 490 l 386 490 l 386 592 l 481 592 l 481 639 l 242 639 l 242 592 l 336 592 l 336 538 l 242 538 l 242 490 m 242 678 l 481 678 l 481 726 l 386 726 l 386 828 l 242 828 l 242 678 m 242 865 l 481 865 l 481 914 l 386 914 l 386 967 l 481 967 l 481 1014 l 243 1014 l 243 967 l 336 967 l 336 914 l 242 914 l 242 865 m 289 11 l 289 78 l 433 78 l 433 11 l 289 11 m 289 726 l 289 779 l 336 779 l 336 726 l 289 726 z "
},
º: {
ha: 722,
x_min: 135,
x_max: 592,
o:
"m 592 1111 l 592 -333 l 135 -333 l 135 1111 l 592 1111 m 242 -233 l 481 -233 l 481 -186 l 333 -186 l 435 -118 l 481 -118 l 481 -71 l 242 -71 l 242 -118 l 342 -118 l 242 -186 l 242 -233 m 242 -37 l 481 -37 l 481 126 l 242 126 l 242 -37 m 242 213 l 481 213 l 481 376 l 336 376 l 336 294 l 386 294 l 386 328 l 433 328 l 433 260 l 289 260 l 289 376 l 242 376 l 242 213 m 242 408 l 481 408 l 481 553 l 433 553 l 433 457 l 242 457 l 242 408 m 242 490 l 386 490 l 386 592 l 481 592 l 481 639 l 242 639 l 242 592 l 336 592 l 336 538 l 242 538 l 242 490 m 242 678 l 481 678 l 481 726 l 386 726 l 386 828 l 242 828 l 242 678 m 242 865 l 481 865 l 481 914 l 386 914 l 386 967 l 481 967 l 481 1014 l 243 1014 l 243 967 l 336 967 l 336 914 l 242 914 l 242 865 m 289 11 l 289 78 l 433 78 l 433 11 l 289 11 m 289 726 l 289 779 l 336 779 l 336 726 l 289 726 z "
},
Ĩ: {
ha: 722,
x_min: 135,
x_max: 592,
o:
"m 592 1111 l 592 -333 l 135 -333 l 135 1111 l 592 1111 m 242 -233 l 481 -233 l 481 -186 l 333 -186 l 435 -118 l 481 -118 l 481 -71 l 242 -71 l 242 -118 l 342 -118 l 242 -186 l 242 -233 m 242 -37 l 481 -37 l 481 126 l 242 126 l 242 -37 m 242 213 l 481 213 l 481 376 l 336 376 l 336 294 l 386 294 l 386 328 l 433 328 l 433 260 l 289 260 l 289 376 l 242 376 l 242 213 m 242 408 l 481 408 l 481 553 l 433 553 l 433 457 l 242 457 l 242 408 m 242 490 l 386 490 l 386 592 l 481 592 l 481 639 l 242 639 l 242 592 l 336 592 l 336 538 l 242 538 l 242 490 m 242 678 l 481 678 l 481 726 l 386 726 l 386 828 l 242 828 l 242 678 m 242 865 l 481 865 l 481 914 l 386 914 l 386 967 l 481 967 l 481 1014 l 243 1014 l 243 967 l 336 967 l 336 914 l 242 914 l 242 865 m 289 11 l 289 78 l 433 78 l 433 11 l 289 11 m 289 726 l 289 779 l 336 779 l 336 726 l 289 726 z "
},
ĩ: {
ha: 722,
x_min: 135,
x_max: 592,
o:
"m 592 1111 l 592 -333 l 135 -333 l 135 1111 l 592 1111 m 242 -233 l 481 -233 l 481 -186 l 333 -186 l 435 -118 l 481 -118 l 481 -71 l 242 -71 l 242 -118 l 342 -118 l 242 -186 l 242 -233 m 242 -37 l 481 -37 l 481 126 l 242 126 l 242 -37 m 242 213 l 481 213 l 481 376 l 336 376 l 336 294 l 386 294 l 386 328 l 433 328 l 433 260 l 289 260 l 289 376 l 242 376 l 242 213 m 242 408 l 481 408 l 481 553 l 433 553 l 433 457 l 242 457 l 242 408 m 242 490 l 386 490 l 386 592 l 481 592 l 481 639 l 242 639 l 242 592 l 336 592 l 336 538 l 242 538 l 242 490 m 242 678 l 481 678 l 481 726 l 386 726 l 386 828 l 242 828 l 242 678 m 242 865 l 481 865 l 481 914 l 386 914 l 386 967 l 481 967 l 481 1014 l 243 1014 l 243 967 l 336 967 l 336 914 l 242 914 l 242 865 m 289 11 l 289 78 l 433 78 l 433 11 l 289 11 m 289 726 l 289 779 l 336 779 l 336 726 l 289 726 z "
},
Ĭ: {
ha: 722,
x_min: 135,
x_max: 592,
o:
"m 592 1111 l 592 -333 l 135 -333 l 135 1111 l 592 1111 m 242 -233 l 481 -233 l 481 -186 l 333 -186 l 435 -118 l 481 -118 l 481 -71 l 242 -71 l 242 -118 l 342 -118 l 242 -186 l 242 -233 m 242 -37 l 481 -37 l 481 126 l 242 126 l 242 -37 m 242 213 l 481 213 l 481 376 l 336 376 l 336 294 l 386 294 l 386 328 l 433 328 l 433 260 l 289 260 l 289 376 l 242 376 l 242 213 m 242 408 l 481 408 l 481 553 l 433 553 l 433 457 l 242 457 l 242 408 m 242 490 l 386 490 l 386 592 l 481 592 l 481 639 l 242 639 l 242 592 l 336 592 l 336 538 l 242 538 l 242 490 m 242 678 l 481 678 l 481 726 l 386 726 l 386 828 l 242 828 l 242 678 m 242 865 l 481 865 l 481 914 l 386 914 l 386 967 l 481 967 l 481 1014 l 243 1014 l 243 967 l 336 967 l 336 914 l 242 914 l 242 865 m 289 11 l 289 78 l 433 78 l 433 11 l 289 11 m 289 726 l 289 779 l 336 779 l 336 726 l 289 726 z "
},
ĭ: {
ha: 722,
x_min: 135,
x_max: 592,
o:
"m 592 1111 l 592 -333 l 135 -333 l 135 1111 l 592 1111 m 242 -233 l 481 -233 l 481 -186 l 333 -186 l 435 -118 l 481 -118 l 481 -71 l 242 -71 l 242 -118 l 342 -118 l 242 -186 l 242 -233 m 242 -37 l 481 -37 l 481 126 l 242 126 l 242 -37 m 242 213 l 481 213 l 481 376 l 336 376 l 336 294 l 386 294 l 386 328 l 433 328 l 433 260 l 289 260 l 289 376 l 242 376 l 242 213 m 242 408 l 481 408 l 481 553 l 433 553 l 433 457 l 242 457 l 242 408 m 242 490 l 386 490 l 386 592 l 481 592 l 481 639 l 242 639 l 242 592 l 336 592 l 336 538 l 242 538 l 242 490 m 242 678 l 481 678 l 481 726 l 386 726 l 386 828 l 242 828 l 242 678 m 242 865 l 481 865 l 481 914 l 386 914 l 386 967 l 481 967 l 481 1014 l 243 1014 l 243 967 l 336 967 l 336 914 l 242 914 l 242 865 m 289 11 l 289 78 l 433 78 l 433 11 l 289 11 m 289 726 l 289 779 l 336 779 l 336 726 l 289 726 z "
},
"̉": {
ha: 722,
x_min: 135,
x_max: 592,
o:
"m 592 1111 l 592 -333 l 135 -333 l 135 1111 l 592 1111 m 242 -233 l 481 -233 l 481 -186 l 333 -186 l 435 -118 l 481 -118 l 481 -71 l 242 -71 l 242 -118 l 342 -118 l 242 -186 l 242 -233 m 242 -37 l 481 -37 l 481 126 l 242 126 l 242 -37 m 242 213 l 481 213 l 481 376 l 336 376 l 336 294 l 386 294 l 386 328 l 433 328 l 433 260 l 289 260 l 289 376 l 242 376 l 242 213 m 242 408 l 481 408 l 481 553 l 433 553 l 433 457 l 242 457 l 242 408 m 242 490 l 386 490 l 386 592 l 481 592 l 481 639 l 242 639 l 242 592 l 336 592 l 336 538 l 242 538 l 242 490 m 242 678 l 481 678 l 481 726 l 386 726 l 386 828 l 242 828 l 242 678 m 242 865 l 481 865 l 481 914 l 386 914 l 386 967 l 481 967 l 481 1014 l 243 1014 l 243 967 l 336 967 l 336 914 l 242 914 l 242 865 m 289 11 l 289 78 l 433 78 l 433 11 l 289 11 m 289 726 l 289 779 l 336 779 l 336 726 l 289 726 z "
},
"―": {
ha: 722,
x_min: 135,
x_max: 592,
o:
"m 592 1111 l 592 -333 l 135 -333 l 135 1111 l 592 1111 m 242 -233 l 481 -233 l 481 -186 l 333 -186 l 435 -118 l 481 -118 l 481 -71 l 242 -71 l 242 -118 l 342 -118 l 242 -186 l 242 -233 m 242 -37 l 481 -37 l 481 126 l 242 126 l 242 -37 m 242 213 l 481 213 l 481 376 l 336 376 l 336 294 l 386 294 l 386 328 l 433 328 l 433 260 l 289 260 l 289 376 l 242 376 l 242 213 m 242 408 l 481 408 l 481 553 l 433 553 l 433 457 l 242 457 l 242 408 m 242 490 l 386 490 l 386 592 l 481 592 l 481 639 l 242 639 l 242 592 l 336 592 l 336 538 l 242 538 l 242 490 m 242 678 l 481 678 l 481 726 l 386 726 l 386 828 l 242 828 l 242 678 m 242 865 l 481 865 l 481 914 l 386 914 l 386 967 l 481 967 l 481 1014 l 243 1014 l 243 967 l 336 967 l 336 914 l 242 914 l 242 865 m 289 11 l 289 78 l 433 78 l 433 11 l 289 11 m 289 726 l 289 779 l 336 779 l 336 726 l 289 726 z "
},
"‖": {
ha: 722,
x_min: 135,
x_max: 592,
o:
"m 592 1111 l 592 -333 l 135 -333 l 135 1111 l 592 1111 m 242 -233 l 481 -233 l 481 -186 l 333 -186 l 435 -118 l 481 -118 l 481 -71 l 242 -71 l 242 -118 l 342 -118 l 242 -186 l 242 -233 m 242 -.........完整代码请登录后点击上方下载按钮下载查看
















网友评论0