Создание 3D-дуги с использованием экструзии с HTML x3DOM - PullRequest
0 голосов
/ 06 мая 2018

Я пытался найти информацию, но не могу найти много информации о html x3dom в общем, в любом случае, я хочу создать форму дуги в 3D, используя экструзию, но я только получаю эту форму:

enter image description here

Вот мой код:

<html>
<head>
    <meta charset="utf-8">
    <title>Arc X3D</title>
    <script type='text/javascript' src='x3dom-full.js'>
    </script>
    <link rel='stylesheet' type='text/css' href='x3dom.css' />
</head>
<body>
    <x3d width="512px" height="512px">
        <scene>
            <background skyColor="0.9375 0.8984 0.5469"><!-- khaki -->
            </background>
            <switch whichChoice="-1">
            <extrusion id="arc" convex="false"
                  crossSection="
                  0.5 -1
                  0.5 1
                  -0.5 1
                  -0.5 -1
                  0.5 -1"
                  spine="
                  0 -1 0
                  0 -.9 0
                  0 -.7 0
                  0 -.5 0
                  0 0 0
                  0 .5 0
                  0 .7 0
                  0 .9 0
                  0 1 0"
                  scale="
                  1 1
                  0.9 1
                  0.8 1
                  0.7 1
                  0.6 1
                  0.7 1
                  0.8 1
                  0.9 1
                  1 1">
            </extrusion>
            </switch>
            <transform id="Arc">
                <transform translation="0 0 0" scale="1 2 1">
                    <shape>
                        <appearance>
                            <twosidedmaterial diffuseColor="red"></twosidedmaterial>
                        </appearance>
                        <x3dgeometrynode use="arc"></x3dgeometrynode>
                    </shape>
                </transform>
            </transform>
        </scene>
    </x3d>
</body>
</html>

Есть ли способ заставить его изгибаться внутрь, изгибаясь наружу на другой стороне, чтобы получить форму, похожую на дугу?

Заранее спасибо.

1 Ответ

0 голосов
/ 08 мая 2018

После изменения нескольких вещей я нашел решение проблемы:

<extrusion id="arc" convex="false"
   crossSection="
        -1 -0.5
        -0.7 -0.4
        -0.4 -0.35
        0 -0.3
        0.4 -0.35
        0.7 -0.4
        1 -0.5
        1 0.2
        0.7 0.3
        0.4 0.35
        0 0.4
        -0.4 0.35
        -0.7 0.3
        -1 0.2
        -1 -0.5
        "
    spine="
        0 -1 0
        0 0 0
        "
     scale="
        1 1
        1 1
        ">
 </extrusion>

Решение состоит в том, чтобы сделать форму дуги в 2D и затем придать ей объем посредством экструзии

Окончательный результат:

enter image description here

...