Vektoren und Koordinaten

Source Codes

Moderator: Yukterez

Vektoren und Koordinaten

Beitragvon Yukterez » 05.04.2013, 17:53

Strahlen, Polar zu Kartesisch

Mupad Syntax:

Code: Alles auswählen
plot(                                                                                   // Code by Yukterez:
//    Vektor [x,y]                                      [x2,y2]                                      Radius:

//    ASTERISK5
plot::Line2d([0,0],                                     [0,r],                                      r=0..1),
plot::Line2d([0,0],                                     [+r*cos(PI/2-2*PI/5),+r*sin(PI/2-2*PI/5)],  r=0..1),
plot::Line2d([0,0],                                     [-r*cos(PI/2-2*PI/5),+r*sin(PI/2-2*PI/5)],  r=0..1),
plot::Line2d([0,0],                                     [+r*cos(3*PI/10),-r*sin(3*PI/10)],          r=0..1),
plot::Line2d([0,0],                                     [-r*cos(3*PI/10),-r*sin(3*PI/10)],          r=0..1),

//    PENTAGON
plot::Line2d([+r*cos(PI/2-2*PI/5),+r*sin(PI/2-2*PI/5)], [0,r],                                      r=0..1),
plot::Line2d([-r*cos(PI/2-2*PI/5),+r*sin(PI/2-2*PI/5)], [0,r],                                      r=0..1),
plot::Line2d([+r*cos(3*PI/10),-r*sin(3*PI/10)],         [+r*cos(PI/2-2*PI/5),+r*sin(PI/2-2*PI/5)],  r=0..1),
plot::Line2d([-r*cos(3*PI/10),-r*sin(3*PI/10)],         [-r*cos(PI/2-2*PI/5),+r*sin(PI/2-2*PI/5)],  r=0..1),
plot::Line2d([-r*cos(3*PI/10),-r*sin(3*PI/10)],         [+r*cos(3*PI/10),-r*sin(3*PI/10)],          r=0..1),

//    PENTAGRAMM
plot::Line2d([-r*cos(3*PI/10),-r*sin(3*PI/10)],         [0,r],                                      r=0..1),
plot::Line2d([-r*cos(PI/2-2*PI/5),+r*sin(PI/2-2*PI/5)], [+r*cos(PI/2-2*PI/5),+r*sin(PI/2-2*PI/5)],  r=0..1),
plot::Line2d([-r*cos(3*PI/10),-r*sin(3*PI/10)],         [+r*cos(PI/2-2*PI/5),+r*sin(PI/2-2*PI/5)],  r=0..1),
plot::Line2d([+r*cos(3*PI/10),-r*sin(3*PI/10)],         [-r*cos(PI/2-2*PI/5),+r*sin(PI/2-2*PI/5)],  r=0..1),
plot::Line2d([+r*cos(3*PI/10),-r*sin(3*PI/10)],         [0,r]                                       r=0..1),

//    SPITZEN
plot::Point2d([0,r],                                                                                r=0..1),
plot::Point2d([+r*cos(PI/2-2*PI/5),+r*sin(PI/2-2*PI/5)],                                            r=0..1),
plot::Point2d([-r*cos(PI/2-2*PI/5),+r*sin(PI/2-2*PI/5)],                                            r=0..1),
plot::Point2d([+r*cos(3*PI/10),-r*sin(3*PI/10)],                                                    r=0..1),
plot::Point2d([-r*cos(3*PI/10),-r*sin(3*PI/10)],                                                    r=0..1))

Formel:

Bild

Der Vollkreis muss in 90° (π/2 Radianten) Abschnitte aufgeteilt werden. Anwendung der Formel:

x = r*cos(φ); y = r*sin(φ)

Bild

Für eine Ellipse wird ein Faktor vor x oder y gesetzt: Ellipse.png & Kreis.png

Sechsstern:

Code: Alles auswählen
plot(                                                                                   // Code by Yukterez:
                                                        plot::Circle2d(r, [0,0],                    r=0..1),

//    Vektor [x,y]                                      [x2,y2]                                      Radius:

//    ASTERISK6
plot::Line2d([0,0],                                     [0,+r],                                     r=0..1),
plot::Line2d([0,0],                                     [0,-r],                                     r=0..1),
plot::Line2d([0,0],                                     [+r*cos(PI/2-PI/3),+r*sin(PI/2-PI/3)],      r=0..1),
plot::Line2d([0,0],                                     [-r*cos(PI/2-PI/3),-r*sin(PI/2-PI/3)],      r=0..1),
plot::Line2d([0,0],                                     [+r*cos(PI/2-PI/3),-r*sin(PI/2-PI/3)],      r=0..1),
plot::Line2d([0,0],                                     [-r*cos(PI/2-PI/3),+r*sin(PI/2-PI/3)],      r=0..1),

//    HEXAGON
plot::Line2d([-r*cos(PI/2-PI/3),-r*sin(PI/2-PI/3)],     [0,-r],                                     r=0..1),
plot::Line2d([+r*cos(PI/2-PI/3),+r*sin(PI/2-PI/3)],     [0,+r],                                     r=0..1),
plot::Line2d([+r*cos(PI/2-PI/3),-r*sin(PI/2-PI/3)],     [+r*cos(PI/2-PI/3),+r*sin(PI/2-PI/3)],      r=0..1),
plot::Line2d([-r*cos(PI/2-PI/3),+r*sin(PI/2-PI/3)],     [-r*cos(PI/2-PI/3),-r*sin(PI/2-PI/3)],      r=0..1),
plot::Line2d([+r*cos(PI/2-PI/3),-r*sin(PI/2-PI/3)],     [0,-r],                                     r=0..1),
plot::Line2d([-r*cos(PI/2-PI/3),+r*sin(PI/2-PI/3)],     [0,+r],                                     r=0..1),

//    HEXAGRAMM
plot::Line2d([+r*cos(PI/2-PI/3),-r*sin(PI/2-PI/3)],     [-r*cos(PI/2-PI/3),-r*sin(PI/2-PI/3)],      r=0..1),
plot::Line2d([-r*cos(PI/2-PI/3),+r*sin(PI/2-PI/3)],     [0,-r],                                     r=0..1),
plot::Line2d([+r*cos(PI/2-PI/3),-r*sin(PI/2-PI/3)],     [0,+r],                                     r=0..1),
plot::Line2d([+r*cos(PI/2-PI/3),+r*sin(PI/2-PI/3)],     [0,-r],                                     r=0..1),
plot::Line2d([-r*cos(PI/2-PI/3),+r*sin(PI/2-PI/3)],     [+r*cos(PI/2-PI/3),+r*sin(PI/2-PI/3)],      r=0..1),
plot::Line2d([-r*cos(PI/2-PI/3),-r*sin(PI/2-PI/3)],     [0,+r],                                     r=0..1),

//    SPITZEN
plot::Point2d([0,r],                                                                                 r=0..1),
plot::Point2d([0,-r],                                                                                r=0..1),
plot::Point2d([+r*cos(PI/2-PI/3),+r*sin(PI/2-PI/3)],                                                 r=0..1),
plot::Point2d([-r*cos(PI/2-PI/3),-r*sin(PI/2-PI/3)],                                                 r=0..1),
plot::Point2d([+r*cos(PI/2-PI/3),-r*sin(PI/2-PI/3)],                                                 r=0..1),
plot::Point2d([-r*cos(PI/2-PI/3),+r*sin(PI/2-PI/3)],                                                 r=0..1))

Bild



Beim 7-Stern geht es im selben Prinzip weiter:

Code: Alles auswählen
//                                     yukterez.enabled.io
plot(                                                     plot::Ellipse2d(r,r, [0,0],               r=0..1),
plot::Point2d(   [0,   +r],                                                                         r=0..1),
plot::Point2d(   [+r*cos(PI/2-2*PI/7),   +r*sin(PI/2-2*PI/7)],                                      r=0..1),
plot::Point2d(   [+r*cos(PI/2-4*PI/7),   +r*sin(PI/2-4*PI/7)],                                      r=0..1),
plot::Point2d(   [+r*cos(-5*PI/14),      +r*sin(-5*PI/14)],                                         r=0..1),
plot::Point2d(   [-r*cos(+5*PI/14),      +r*sin(-5*PI/14)],                                         r=0..1),
plot::Point2d(   [-r*cos(PI/2-4*PI/7),   +r*sin(PI/2-4*PI/7)],                                      r=0..1),
plot::Point2d(   [-r*cos(PI/2-2*PI/7),   +r*sin(PI/2-2*PI/7)],                                      r=0..1))

Bild

usw. usf.
⍩⍨⍟⎆⎉⎙⎊⎌⏏⚝⇲⇱→↓←↑↖↗↘↙↪↯↹↺↻⇅⇄⇇⇈⇉⇊⇋⇌⇒⇐⇓⇑⇜⇝⇪⇶↔⇜⇝⇠⇡⇢⇣⇪↔☜☞☟☝☯⌚␛⎋„“
‾±⁻₋⁺₊⁼₌ⁱⁿªₐₑₒₓ⁰₀¹₁²₂³₃⁴₄⁵₅⁶₆⁷₇⁸₈⁹₉⁽₍⁾₎ℎℏ⅛¼⅓⅜½⅝⅔¾⅞♀♂✯✲✽✾❅❆❇❪❫❬❭✌❤☺☹☻ツ‰÷≤≥≠≈×·√∂∂
♫∅∞≈∠∈∋∉∏∑∞∝ƒ∫∴☀☁☂★☆☇☈☎☑☒ ☼☾♻⚇⚒⚕⚖☠☢☣☧☨☪✪卐✠☭✡☮█
■□▣▤▥▦▧▨▩▭▯▮▰▱▲△▴▵◇◈◉◍◎●◐◑◒◓◔◕◖◗◘◙◢◣◤◥◧◨◩◪◫◬◭◮◰◴◵◶◷◸◹◺◻◼◽◾
Benutzeravatar
Yukterez
 
Beiträge: 155
Registriert: 08.12.2012, 21:26

Koordinaten, Strahlen und Winkel

Beitragvon Yukterez » 05.04.2013, 17:57

Mathematica Syntax. Koordinaten in der Form {x, y}

___________________________________________________________

1

Code: Alles auswählen
1 Objekt

{Sin[φ], Cos[φ}

Bild


___________________________________________________________

2

Code: Alles auswählen
2 Objekte

{Sin[π+φ]], Cos[π+φ]},
{Sin[φ], Cos[φ]}

Bild


___________________________________________________________

3

Code: Alles auswählen
3 Objekte

{r*Sin[0*π/3], r*Cos[0*π/3]},
{r*Sin[2*π/3], r*Cos[2*π/3]},
{r*Sin[4*π/3], r*Cos[4*π/3]}

Bild


___________________________________________________________

4

Code: Alles auswählen
4 Objekte

{r*Sin[0*π/4], r*Cos[0*π/4]},
{r*Sin[2*π/4], r*Cos[2*π/4]},
{r*Sin[4*π/4], r*Cos[4*π/4]},
{r*Sin[6*π/4], r*Cos[6*π/4]}

Bild


___________________________________________________________

5

Code: Alles auswählen
5 Objekte

{r*Sin[0*π/5], r*Cos[0*π/5]},
{r*Sin[2*π/5], r*Cos[2*π/5]},
{r*Sin[4*π/5], r*Cos[4*π/5]},
{r*Sin[6*π/5], r*Cos[6*π/5]},
{r*Sin[8*π/5], r*Cos[8*π/5]}

Bild


___________________________________________________________

6

Code: Alles auswählen
6 Objekte

{r*Sin[ 0*π/6], r*Cos[ 0*π/6]},
{r*Sin[ 2*π/6], r*Cos[ 2*π/6]},
{r*Sin[ 4*π/6], r*Cos[ 4*π/6]},
{r*Sin[ 6*π/6], r*Cos[ 6*π/6]},
{r*Sin[ 8*π/6], r*Cos[ 8*π/6]},
{r*Sin[10*π/6], r*Cos[10*π/6]}

Bild


___________________________________________________________

7

Code: Alles auswählen
7 Objekte

{r*Sin[ 0*π/7], r*Cos[ 0*π/7]},
{r*Sin[ 2*π/7], r*Cos[ 2*π/7]},
{r*Sin[ 4*π/7], r*Cos[ 4*π/7]},
{r*Sin[ 6*π/7], r*Cos[ 6*π/7]},
{r*Sin[ 8*π/7], r*Cos[ 8*π/7]},
{r*Sin[10*π/7], r*Cos[10*π/7]},
{r*Sin[12*π/7], r*Cos[12*π/7]}

Bild


___________________________________________________________

8

Code: Alles auswählen
8 Objekte
{r*Sin[ 0*π/8], r*Cos[ 0*π/8]},
{r*Sin[ 2*π/8], r*Cos[ 2*π/8]},
{r*Sin[ 4*π/8], r*Cos[ 4*π/8]},
{r*Sin[ 6*π/8], r*Cos[ 6*π/8]},
{r*Sin[ 8*π/8], r*Cos[ 8*π/8]},
{r*Sin[10*π/8], r*Cos[10*π/8]},
{r*Sin[12*π/8], r*Cos[12*π/8]},
{r*Sin[14*π/8], r*Cos[14*π/8]}

Bild


___________________________________________________________

9

Code: Alles auswählen
9 Objekte

{r*Sin[ 0*π/9], r*Cos[ 0*π/9]},
{r*Sin[ 2*π/9], r*Cos[ 2*π/9]},
{r*Sin[ 4*π/9], r*Cos[ 4*π/9]},
{r*Sin[ 6*π/9], r*Cos[ 6*π/9]},
{r*Sin[ 8*π/9], r*Cos[ 8*π/9]},
{r*Sin[10*π/9], r*Cos[10*π/9]},
{r*Sin[12*π/9], r*Cos[12*π/9]},
{r*Sin[14*π/9], r*Cos[14*π/9]},
{r*Sin[16*π/9], r*Cos[16*π/9]}

Bild


___________________________________________________________

10

Code: Alles auswählen
10 Objekte

{r*Sin[ 0*π/10], r*Cos[ 0*π/10]},
{r*Sin[ 2*π/10], r*Cos[ 2*π/10]},
{r*Sin[ 4*π/10], r*Cos[ 4*π/10]},
{r*Sin[ 6*π/10], r*Cos[ 6*π/10]},
{r*Sin[ 8*π/10], r*Cos[ 8*π/10]},
{r*Sin[10*π/10], r*Cos[10*π/10]},
{r*Sin[12*π/10], r*Cos[12*π/10]},
{r*Sin[14*π/10], r*Cos[14*π/10]},
{r*Sin[16*π/10], r*Cos[16*π/10]},
{r*Sin[18*π/10], r*Cos[18*π/10]}

Bild

___________________________________________________________

11

Code: Alles auswählen
11 Objekte mit Drehung ↻

Animate[Graphics[Point[{
    {Sin[0*π/11+φ],   Cos[0*π/11+φ]},
    {Sin[2*π/11+φ],   Cos[2*π/11+φ]},
    {Sin[4*π/11+φ],   Cos[4*π/11+φ]},
    {Sin[6*π/11+φ],   Cos[6*π/11+φ]},
    {Sin[8*π/11+φ],   Cos[8*π/11+φ]},
    {Sin[10*π/11+φ], Cos[10*π/11+φ]},
    {Sin[12*π/11+φ], Cos[12*π/11+φ]},
    {Sin[14*π/11+φ], Cos[14*π/11+φ]},
    {Sin[16*π/11+φ], Cos[16*π/11+φ]},
    {Sin[18*π/11+φ], Cos[18*π/11+φ]},
    {Sin[20*π/11+φ], Cos[20*π/11+φ]}
    }], Frame -> True,
  PlotRange -> {{-1.1, 1.1}, {-1.1, 1.1}}],
 {φ, 0, 2 π/11}]

Bild


___________________________________________________________

etc. siehe auch http://yukterez.enabled.io/nunki/viewtopic.php?f=6&t=551&start=10
⍩⍨⍟⎆⎉⎙⎊⎌⏏⚝⇲⇱→↓←↑↖↗↘↙↪↯↹↺↻⇅⇄⇇⇈⇉⇊⇋⇌⇒⇐⇓⇑⇜⇝⇪⇶↔⇜⇝⇠⇡⇢⇣⇪↔☜☞☟☝☯⌚␛⎋„“
‾±⁻₋⁺₊⁼₌ⁱⁿªₐₑₒₓ⁰₀¹₁²₂³₃⁴₄⁵₅⁶₆⁷₇⁸₈⁹₉⁽₍⁾₎ℎℏ⅛¼⅓⅜½⅝⅔¾⅞♀♂✯✲✽✾❅❆❇❪❫❬❭✌❤☺☹☻ツ‰÷≤≥≠≈×·√∂∂
♫∅∞≈∠∈∋∉∏∑∞∝ƒ∫∴☀☁☂★☆☇☈☎☑☒ ☼☾♻⚇⚒⚕⚖☠☢☣☧☨☪✪卐✠☭✡☮█
■□▣▤▥▦▧▨▩▭▯▮▰▱▲△▴▵◇◈◉◍◎●◐◑◒◓◔◕◖◗◘◙◢◣◤◥◧◨◩◪◫◬◭◮◰◴◵◶◷◸◹◺◻◼◽◾
Benutzeravatar
Yukterez
 
Beiträge: 155
Registriert: 08.12.2012, 21:26

Re: Vektoren und Koordinaten: Symmetrien

Beitragvon Tom Peak » 07.04.2013, 16:05

Code: Alles auswählen
<html>
<head>
   <script src="http://code.jquery.com/jquery-1.8.3.min.js" ></script>
   <link rel="stylesheet" href="http://www.wildstream.io/turbine/css.php?files=star.cssp"/>

</head>
<body>
   <ul id="starmenu">
      <li><a>base</a>
         <ul >
            <li><a>one</a>
            </li>
            <li><a>on-two</a>
            </li>
            <li><a>two</a>
            </li>
            <li><a>three</a>
            </li>
            <li><a>four-sub</a>
               <ul>
                  <li> <a>four one</a>
                  </li>
                  <li> <a>four two</a>
                  </li>
                  <li><a> four three</a>
                  </li>
               </ul>
            </li>
         </ul>
      </li>

   </ul>

   <script>
   var radius = 200
   $("#starmenu ul").hide();
   $("#starmenu a").click(function(){ if($(this).parent().children().length==2)($(this).parent().children(':first-child').next().toggle());
      var item = new Object();
      item=$(this).next().children();
      console.log(item);
      console.log(item.length);
      $(item).parent().css({'position':'relative'});
      for(i=0;i<item.length;i++){
            /* Magic happens heare*/
            area=Math.floor((360/item.length)*i%90);
                               /* in welchem Quadranten? */
            console.log(area);
            switch(area)
            {
            case 0:
              xOffset=1;
              yOffset=-1;
              break;
            case 1:
              xOffset=1;
              yOffset=1;
              break;
            case 2:
              xOffset=-1;
              yOffset=1;
              break;
            case 3:
              xOffset=-1;
              yOffset=-1;
              break;
            

            }
            /*???????????*/
            alpha=(180/Math.PI)*((360/item.length*(i+1))%90)
            y=yOffset*radius*Math.sin(alpha)
            x=xOffset*radius*Math.cos(alpha)
            console.log(Math.sin(alpha));
            $(item[i]).css({'top':'0px','left':'0px','position':'absolute'});
         $(item[i]).animate({'top': y + 'px','left':x+'px'});
      }

})
   
   </script>
</body>
</html>


http://www.wildstream.io/starmenu.php
Tom Peak
 
Beiträge: 8
Registriert: 07.04.2013, 15:49

Re: Vektoren und Koordinaten: Symmetrien

Beitragvon Tom Peak » 07.04.2013, 16:33

Da stimmt einiges nicht!!! …also wie ist es mit dem Offset?

Code: Alles auswählen
area=Math.floor(((360/item.length)*(i+1))/90);


würde ich sagen....

und restwinkel. Mit den Offesets muss man sich spielen, ich komm aber auf keinen grünen Zwig.

Brauch ich den ?restwinkel?
Code: Alles auswählen
alpha=Math.floor(((360/item.length)*(i+1))%90)
den ich eben mit dem Offset spiegle?

tom
Tom Peak
 
Beiträge: 8
Registriert: 07.04.2013, 15:49

Re: Vektoren und Koordinaten: Symmetrien

Beitragvon Tom Peak » 07.04.2013, 16:50

Der restwinkel hängt auch mit dem Spiegel zam...
Tom Peak
 
Beiträge: 8
Registriert: 07.04.2013, 15:49

Re: Vektoren und Koordinaten: Symmetrien

Beitragvon Yukterez » 07.04.2013, 17:32

Es gibt ein Update in der Tabelle. Man kann es auf mehrere Arten eingeben, für dich wäre am besten diese Methode; da hast du dann eine Formel für alles, und kannst es automatisieren:

Code: Alles auswählen
x = r*Sin(2*(Ojektnummer-1)*Pi/Objektsumme)
y = r*Cos(2*(Ojektnummer-1)*Pi/Objektsumme)

Also bei 3 Punkten:

Code: Alles auswählen
//                               [x ,  y]                     Radius        Nummer
//
//                        #       Σ ,           #       Σ
//                        ↓       ↓             ↓       ↓
plot(
plot::Point2d(  [r*sin(2*(1-1)*PI/3),  r*cos(2*(1-1)*PI/3)],  r=0..1),   // Objekt 1
plot::Point2d(  [r*sin(2*(2-1)*PI/3),  r*cos(2*(2-1)*PI/3)],  r=0..1),   // Objekt 2
plot::Point2d(  [r*sin(2*(3-1)*PI/3),  r*cos(2*(3-1)*PI/3)],  r=0..1))   // Objekt 3

usw.

Wenn statt in Radianten in Grad gerechnet wird, ersetze π durch 180.

PS, wofür steht in deinem Code das %90 ?
⍩⍨⍟⎆⎉⎙⎊⎌⏏⚝⇲⇱→↓←↑↖↗↘↙↪↯↹↺↻⇅⇄⇇⇈⇉⇊⇋⇌⇒⇐⇓⇑⇜⇝⇪⇶↔⇜⇝⇠⇡⇢⇣⇪↔☜☞☟☝☯⌚␛⎋„“
‾±⁻₋⁺₊⁼₌ⁱⁿªₐₑₒₓ⁰₀¹₁²₂³₃⁴₄⁵₅⁶₆⁷₇⁸₈⁹₉⁽₍⁾₎ℎℏ⅛¼⅓⅜½⅝⅔¾⅞♀♂✯✲✽✾❅❆❇❪❫❬❭✌❤☺☹☻ツ‰÷≤≥≠≈×·√∂∂
♫∅∞≈∠∈∋∉∏∑∞∝ƒ∫∴☀☁☂★☆☇☈☎☑☒ ☼☾♻⚇⚒⚕⚖☠☢☣☧☨☪✪卐✠☭✡☮█
■□▣▤▥▦▧▨▩▭▯▮▰▱▲△▴▵◇◈◉◍◎●◐◑◒◓◔◕◖◗◘◙◢◣◤◥◧◨◩◪◫◬◭◮◰◴◵◶◷◸◹◺◻◼◽◾
Benutzeravatar
Yukterez
 
Beiträge: 155
Registriert: 08.12.2012, 21:26

Re: Vektoren und Koordinaten: Symmetrien

Beitragvon Tom Peak » 09.04.2013, 17:01

% = modulo = Rest

Restwinkel
Tom Peak
 
Beiträge: 8
Registriert: 07.04.2013, 15:49

Problem gelöst

Beitragvon Yukterez » 09.04.2013, 19:46

Das sollte dann wenn alles kompatibel ist so aussehen:

Bild

yukterez.enabled.io/star.html

Code: Alles auswählen
area=Math.floor((2*Math.PI/item.length)*i);     /* Radiant verwenden   */

{
case 0:                                         /* Offsets zentrieren  */
  xOffset=0;
  yOffset=0;
  break;
}

alpha=(2*Math.PI/item.length*(i+1))             /* Radiant statt Grad  */
y=yOffset+radius*Math.cos(alpha)                /* Addieren statt      */
x=xOffset+radius*Math.sin(alpha)                /* multiplizieren      */
console.log(Math.sin(alpha));

Wie man aber den Radius der zweiten Ebene verkleinert, hab ich leider auch noch nicht herausgefunden.
⍩⍨⍟⎆⎉⎙⎊⎌⏏⚝⇲⇱→↓←↑↖↗↘↙↪↯↹↺↻⇅⇄⇇⇈⇉⇊⇋⇌⇒⇐⇓⇑⇜⇝⇪⇶↔⇜⇝⇠⇡⇢⇣⇪↔☜☞☟☝☯⌚␛⎋„“
‾±⁻₋⁺₊⁼₌ⁱⁿªₐₑₒₓ⁰₀¹₁²₂³₃⁴₄⁵₅⁶₆⁷₇⁸₈⁹₉⁽₍⁾₎ℎℏ⅛¼⅓⅜½⅝⅔¾⅞♀♂✯✲✽✾❅❆❇❪❫❬❭✌❤☺☹☻ツ‰÷≤≥≠≈×·√∂∂
♫∅∞≈∠∈∋∉∏∑∞∝ƒ∫∴☀☁☂★☆☇☈☎☑☒ ☼☾♻⚇⚒⚕⚖☠☢☣☧☨☪✪卐✠☭✡☮█
■□▣▤▥▦▧▨▩▭▯▮▰▱▲△▴▵◇◈◉◍◎●◐◑◒◓◔◕◖◗◘◙◢◣◤◥◧◨◩◪◫◬◭◮◰◴◵◶◷◸◹◺◻◼◽◾
Benutzeravatar
Yukterez
 
Beiträge: 155
Registriert: 08.12.2012, 21:26

Re: Vektoren und Koordinaten: Symmetrien

Beitragvon Tom Peak » 10.04.2013, 06:16

Nice Job!

www.wildstream.io/starmenu.php

it's working. Ich muss noch ein bisserl feilen. Der 0 Punkt liegt beim parent links unten. Sonst alles super!

Stay tuned, thanx,

tom
Tom Peak
 
Beiträge: 8
Registriert: 07.04.2013, 15:49

Re: Vektoren und Koordinaten: Symmetrien

Beitragvon Yukterez » 10.04.2013, 12:35

Das Offset muss nach rechts unten verschoben werden, weil Text oder Bilder linksbündig der Position eingefügt werden:

Bild

Aber was muß man tun, um den Subframes einen kleineren Radius zuzuweisen als den Frames:

Code: Alles auswählen
<ul id="starmenu"><li> <a>A</a>
              <ul><li> <a>B</a>    /* Radius = 1.0 ? */
              <ul><li> <a>C</a>    /* Radius = 0.5 ? */
 </li></ul></li></ul></li></ul>

Bild

? Ich überleg mir bei Gelegenheit eine Formel für die Perspektive:

Code: Alles auswählen
r = ___ ; k = ___ ; n = ___ ;                          (* Yukterez 2013 *)
Animate[Graphics[Point[{
{r Sin[(2*π*item)/n+φ+Sin[(2*π*item)/n+φ]/k+π],
(1-1/k)*r*Cos[(2*π*item)/n+φ+Sin[(2*π*item)/n+φ]/k+π]},
{..., ...}
}], Frame->True, PlotRange->{{-1.1*r, 1.1*r},{-1.1*r, 1.1*r}}],
{φ, 0, 2*π/n} ]

In Html würde das so aussehen, wenn es funktionieren würde, was es nicht tut:

Code: Alles auswählen
alpha = 2*Math.PI/item.length*i+Math.sin(2*Math.PI/item.length*i)/4

warum nicht?
⍩⍨⍟⎆⎉⎙⎊⎌⏏⚝⇲⇱→↓←↑↖↗↘↙↪↯↹↺↻⇅⇄⇇⇈⇉⇊⇋⇌⇒⇐⇓⇑⇜⇝⇪⇶↔⇜⇝⇠⇡⇢⇣⇪↔☜☞☟☝☯⌚␛⎋„“
‾±⁻₋⁺₊⁼₌ⁱⁿªₐₑₒₓ⁰₀¹₁²₂³₃⁴₄⁵₅⁶₆⁷₇⁸₈⁹₉⁽₍⁾₎ℎℏ⅛¼⅓⅜½⅝⅔¾⅞♀♂✯✲✽✾❅❆❇❪❫❬❭✌❤☺☹☻ツ‰÷≤≥≠≈×·√∂∂
♫∅∞≈∠∈∋∉∏∑∞∝ƒ∫∴☀☁☂★☆☇☈☎☑☒ ☼☾♻⚇⚒⚕⚖☠☢☣☧☨☪✪卐✠☭✡☮█
■□▣▤▥▦▧▨▩▭▯▮▰▱▲△▴▵◇◈◉◍◎●◐◑◒◓◔◕◖◗◘◙◢◣◤◥◧◨◩◪◫◬◭◮◰◴◵◶◷◸◹◺◻◼◽◾
Benutzeravatar
Yukterez
 
Beiträge: 155
Registriert: 08.12.2012, 21:26

Re: Vektoren und Koordinaten: Symmetrien

Beitragvon Yukterez » 11.04.2013, 00:11

Hier die Formel für eine simulierte 3D Perspektive: http://yukterez.enabled.io/star5.html

Code: Alles auswählen
(* Math *)
φ = 2*π/item.lenght*i + Sin[(2*π/item.lenght*i)]/3
Code: Alles auswählen
/* Html */
delta  =  2*Math.PI/item.length*i
beta   =  Math.sin(delta)/3
alpha  =  delta+beta

Das Problem liess sich lösen, indem ich auf α, β, δ aufgeteilt habe:

Bild

Das Problem mit dem zweiten Radius ist aber noch offen.

Nichtsdestotrotz:

Bild

Bild

Bild k = 1..0 (maximale bis negative Perspektive)



Bild

Code: Alles auswählen
                             (* Yukterez Code. Dodecagramm. *)
n = 12; plot1 = Animate[Graphics[Line[{
          {r Sin[ (2 π 00)/n + φ + Sin[(2 π 00)/n + φ]/k + π],         
Sqrt[k/12] r Cos[ (2 π 00)/n + φ + Sin[(2 π 00)/n + φ]/k + π]},
          {r Sin[ (2 π 05)/n + φ + Sin[(2 π 05)/n + φ]/k + π],
Sqrt[k/12] r Cos[ (2 π 05)/n + φ + Sin[(2 π 05)/n + φ]/k + π]},
          {r Sin[ (2 π 10)/n + φ + Sin[(2 π 10)/n + φ]/k + π],
Sqrt[k/12] r Cos[ (2 π 10)/n + φ + Sin[(2 π 10)/n + φ]/k + π]},
          {r Sin[ (2 π 03)/n + φ + Sin[(2 π 03)/n + φ]/k + π],
Sqrt[k/12] r Cos[ (2 π 03)/n + φ + Sin[(2 π 03)/n + φ]/k + π]},
          {r Sin[ (2 π 08)/n + φ + Sin[(2 π 08)/n + φ]/k + π],
Sqrt[k/12] r Cos[ (2 π 08)/n + φ + Sin[(2 π 08)/n + φ]/k + π]},
          {r Sin[ (2 π 01)/n + φ + Sin[(2 π 01)/n + φ]/k + π],
Sqrt[k/12] r Cos[ (2 π 01)/n + φ + Sin[(2 π 01)/n + φ]/k + π]},
          {r Sin[ (2 π 06)/n + φ + Sin[(2 π 06)/n + φ]/k + π],
Sqrt[k/12] r Cos[ (2 π 06)/n + φ + Sin[(2 π 06)/n + φ]/k + π]},
          {r Sin[ (2 π 11)/n + φ + Sin[(2 π 11)/n + φ]/k + π],
Sqrt[k/12] r Cos[ (2 π 11)/n + φ + Sin[(2 π 11)/n + φ]/k + π]},
          {r Sin[ (2 π 04)/n + φ + Sin[(2 π 04)/n + φ]/k + π],
Sqrt[k/12] r Cos[ (2 π 04)/n + φ + Sin[(2 π 04)/n + φ]/k + π]},
          {r Sin[ (2 π 09)/n + φ + Sin[(2 π 09)/n + φ]/k + π],
Sqrt[k/12] r Cos[ (2 π 09)/n + φ + Sin[(2 π 09)/n + φ]/k + π]},
          {r Sin[ (2 π 02)/n + φ + Sin[(2 π 02)/n + φ]/k + π],
Sqrt[k/12] r Cos[ (2 π 02)/n + φ + Sin[(2 π 02)/n + φ]/k + π]},
          {r Sin[ (2 π 07)/n + φ + Sin[(2 π 07)/n + φ]/k + π],
Sqrt[k/12] r Cos[ (2 π 07)/n + φ + Sin[(2 π 07)/n + φ]/k + π]},
          {r Sin[ (2 π 00)/n + φ + Sin[(2 π 00)/n + φ]/k + π],
Sqrt[k/12] r Cos[ (2 π 00)/n + φ + Sin[(2 π 00)/n + φ]/k + π]}
   }], Frame -> True, PlotRange -> {{-1.1, 1.1}, {-1.1, 1.1}}],
                   {φ, 0, 2 π/n} , {k, 6, 1/1000}, {r, 1, 0}]
⍩⍨⍟⎆⎉⎙⎊⎌⏏⚝⇲⇱→↓←↑↖↗↘↙↪↯↹↺↻⇅⇄⇇⇈⇉⇊⇋⇌⇒⇐⇓⇑⇜⇝⇪⇶↔⇜⇝⇠⇡⇢⇣⇪↔☜☞☟☝☯⌚␛⎋„“
‾±⁻₋⁺₊⁼₌ⁱⁿªₐₑₒₓ⁰₀¹₁²₂³₃⁴₄⁵₅⁶₆⁷₇⁸₈⁹₉⁽₍⁾₎ℎℏ⅛¼⅓⅜½⅝⅔¾⅞♀♂✯✲✽✾❅❆❇❪❫❬❭✌❤☺☹☻ツ‰÷≤≥≠≈×·√∂∂
♫∅∞≈∠∈∋∉∏∑∞∝ƒ∫∴☀☁☂★☆☇☈☎☑☒ ☼☾♻⚇⚒⚕⚖☠☢☣☧☨☪✪卐✠☭✡☮█
■□▣▤▥▦▧▨▩▭▯▮▰▱▲△▴▵◇◈◉◍◎●◐◑◒◓◔◕◖◗◘◙◢◣◤◥◧◨◩◪◫◬◭◮◰◴◵◶◷◸◹◺◻◼◽◾
Benutzeravatar
Yukterez
 
Beiträge: 155
Registriert: 08.12.2012, 21:26

Re: Vektoren und Koordinaten: Symmetrien

Beitragvon Tom Peak » 12.04.2013, 10:48

Is ja cool! Wir sollten die Verzerung der Items auch machen und deren Childs. Setzt ma us mal zam. Das mit dem Scalen der Items ist so ne sache. Alles mit css font-size, weisst eh. Da bräuchte ich eventuell die Prozente bzw. eben einen Scalefactor.
Tom Peak
 
Beiträge: 8
Registriert: 07.04.2013, 15:49

Re: Vektoren und Koordinaten: Symmetrien

Beitragvon Yukterez » 12.04.2013, 11:51

Skalenfaktor am besten 1/ebenentiefe:

Bild

Aber wo schreibt man das rein ? Das wär auch für die Schneeflockenprogrammierung nützlich zu wissen.

Ich denk da an

Code: Alles auswählen
var radius1 = 200
var radius2 = 150
var radius3 = 100

aber wie weise ich den verschiedenen children die verschiedenen radien zu ?
⍩⍨⍟⎆⎉⎙⎊⎌⏏⚝⇲⇱→↓←↑↖↗↘↙↪↯↹↺↻⇅⇄⇇⇈⇉⇊⇋⇌⇒⇐⇓⇑⇜⇝⇪⇶↔⇜⇝⇠⇡⇢⇣⇪↔☜☞☟☝☯⌚␛⎋„“
‾±⁻₋⁺₊⁼₌ⁱⁿªₐₑₒₓ⁰₀¹₁²₂³₃⁴₄⁵₅⁶₆⁷₇⁸₈⁹₉⁽₍⁾₎ℎℏ⅛¼⅓⅜½⅝⅔¾⅞♀♂✯✲✽✾❅❆❇❪❫❬❭✌❤☺☹☻ツ‰÷≤≥≠≈×·√∂∂
♫∅∞≈∠∈∋∉∏∑∞∝ƒ∫∴☀☁☂★☆☇☈☎☑☒ ☼☾♻⚇⚒⚕⚖☠☢☣☧☨☪✪卐✠☭✡☮█
■□▣▤▥▦▧▨▩▭▯▮▰▱▲△▴▵◇◈◉◍◎●◐◑◒◓◔◕◖◗◘◙◢◣◤◥◧◨◩◪◫◬◭◮◰◴◵◶◷◸◹◺◻◼◽◾
Benutzeravatar
Yukterez
 
Beiträge: 155
Registriert: 08.12.2012, 21:26

Re: Vektoren und Koordinaten: Symmetrien

Beitragvon Yukterez » 14.04.2013, 05:18

Ich hab den 3D zu 2D Code optimiert:

Yukterez hat geschrieben:
Code: Alles auswählen
(* Math *)

{x,y}_(1) =
{r Sin[(2 π)/n item+((k+1) n)/(10 π)+Sin[(2 π)/n item+((k+1) n)/(10 π)] (1-Sqrt[(k+π)/(10+π)])+π],
Sqrt[k/10] r Cos[(2 π)/n item+((k+1) n)/(10 π)+Sin[(2 π)/n item+((k+1) n)/(10 π)] (1-Sqrt[(k+π)/(10+π)])+π]}

{x,y}_(2) =
{r Sin[(2 π)/n item+((k2-k1+k+1) n)/(10 π)+Sin[(2 π)/n item+((k2-k1+k+1) n)/(10 π)] (1-Sqrt[(k1+k2-k+π)/(10+π)])],
Sqrt[(k1+k2-k)/10] r Cos[(2 π)/n item+((k2-k1+k+1) n)/(10 π)+Sin[(2 π)/n item+((k2-k1+k+1) n)/(10 π)] (1-Sqrt[(k1+k2-k+π)/(10+π)])]}
Code: Alles auswählen
/* Html */

var k  =  6.2832                                       /* Perspektive als Variable definieren           */
radius =  200                                          /* Radius fixieren

radius =  200
                         
epsi2  =  item.length/10/Math.PI*(7+k+1)               /* Drehung in Anhängigkeit zur Perspektive 2     */
epsi1  =  item.length/10/Math.PI*(7+1)                 /* Drehung in Anhängigkeit zur Perspektive 1     */
gamm2  =  Math.sqrt((7-k)/10)                          /* vertikale Skalierung 2                        */
gamm1  =  Math.sqrt(k/10)                              /* vertikale Skalierung 1                        */
delta  =  2*Math.PI/item.length*i+epsi1                /* Grundwinkel                                   */
zeta2  =  Math.sqrt((7-k+3)/13)                        /* Winkelverschiebung 2                          */
zeta1  =  Math.sqrt((k+3)/13)                          /* Winkelverschiebung 1                          */
beta2  =  Math.sin(delta)*(1-zeta2)                    /* Winkeldifferenz 2                             */
beta1  =  Math.sin(delta)*(1-zeta1)                    /* Winkeldifferenz 1                             */
alpha  =  delta+beta1                                  /* Endwinkel 

y      =  yOffset+radius*gamm1*Math.cos(alpha-0.04)
x      =  xOffset+radius*Math.sin(alpha-0.04)

y      =  yOffset+radius*gamm2*Math.cos(alpha-beta1+beta2+Math.PI-0.04)
x      =  xOffset+radius*Math.sin(alpha-beta1+beta2+Math.PI-0.04)

Anwendung und Code: .nb File / .html File

Bild
Bild

Code: Alles auswählen
(* Input Form, Mathematica Syntax. Calculation by Yukterez *)




n = 12; k1 = 0.0001; k2 = 10; r = 1; q = 10; w = 10; (* Settings *)




plot1a = Animate[Graphics[Line[{

{r Sin[(2 π)/n 00+((k+1) n)/(w π)+Sin[(2 π)/n 00+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π],Sqrt[k/10] r Cos[(2 π)/n 00+((k+1) n)/(w π)+Sin[(2 π)/n 00+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π]},

{r Sin[(2 π)/n 05+((k+1) n)/(w π)+Sin[(2 π)/n 05+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π],Sqrt[k/10] r Cos[(2 π)/n 05+((k+1) n)/(w π)+Sin[(2 π)/n 05+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π]},

{r Sin[(2 π)/n 10+((k+1) n)/(w π)+Sin[(2 π)/n 10+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π],Sqrt[k/10] r Cos[(2 π)/n 10+((k+1) n)/(w π)+Sin[(2 π)/n 10+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π]},

{r Sin[(2 π)/n 03+((k+1) n)/(w π)+Sin[(2 π)/n 03+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π],Sqrt[k/10] r Cos[(2 π)/n 03+((k+1) n)/(w π)+Sin[(2 π)/n 03+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π]},

{r Sin[(2 π)/n 08+((k+1) n)/(w π)+Sin[(2 π)/n 08+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π],Sqrt[k/10] r Cos[(2 π)/n 08+((k+1) n)/(w π)+Sin[(2 π)/n 08+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π]},

{r Sin[(2 π)/n 01+((k+1) n)/(w π)+Sin[(2 π)/n 01+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π],Sqrt[k/10] r Cos[(2 π)/n 01+((k+1) n)/(w π)+Sin[(2 π)/n 01+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π]},

{r Sin[(2 π)/n 06+((k+1) n)/(w π)+Sin[(2 π)/n 06+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π],Sqrt[k/10] r Cos[(2 π)/n 06+((k+1) n)/(w π)+Sin[(2 π)/n 06+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π]},

{r Sin[(2 π)/n 11+((k+1) n)/(w π)+Sin[(2 π)/n 11+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π],Sqrt[k/10] r Cos[(2 π)/n 11+((k+1) n)/(w π)+Sin[(2 π)/n 11+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π]},

{r Sin[(2 π)/n 04+((k+1) n)/(w π)+Sin[(2 π)/n 04+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π],Sqrt[k/10] r Cos[(2 π)/n 04+((k+1) n)/(w π)+Sin[(2 π)/n 04+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π]},

{r Sin[(2 π)/n 09+((k+1) n)/(w π)+Sin[(2 π)/n 09+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π],Sqrt[k/10] r Cos[(2 π)/n 09+((k+1) n)/(w π)+Sin[(2 π)/n 09+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π]},

{r Sin[(2 π)/n 02+((k+1) n)/(w π)+Sin[(2 π)/n 02+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π],Sqrt[k/10] r Cos[(2 π)/n 02+((k+1) n)/(w π)+Sin[(2 π)/n 02+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π]},

{r Sin[(2 π)/n 07+((k+1) n)/(w π)+Sin[(2 π)/n 07+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π],Sqrt[k/10] r Cos[(2 π)/n 07+((k+1) n)/(w π)+Sin[(2 π)/n 07+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π]},

{r Sin[(2 π)/n 00+((k+1) n)/(w π)+Sin[(2 π)/n 00+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π],Sqrt[k/10] r Cos[(2 π)/n 00+((k+1) n)/(w π)+Sin[(2 π)/n 00+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π]}

}],Frame->True,PlotRange->{{-1.1,1.1},{-1.1,1.1}}],{k,k1,k2},AnimationRunning->False]




plot2a = Animate[Graphics[Line[{

{r Sin[(2 π)/n 00+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 00+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])],Sqrt[(k1+k2-k)/10] r Cos[(2 π)/n 00+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 00+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])]},

{r Sin[(2 π)/n 05+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 05+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])],Sqrt[(k1+k2-k)/10] r Cos[(2 π)/n 05+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 05+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])]},

{r Sin[(2 π)/n 10+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 10+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])],Sqrt[(k1+k2-k)/10] r Cos[(2 π)/n 10+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 10+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])]},

{r Sin[(2 π)/n 03+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 03+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])],Sqrt[(k1+k2-k)/10] r Cos[(2 π)/n 03+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 03+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])]},

{r Sin[(2 π)/n 08+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 08+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])],Sqrt[(k1+k2-k)/10] r Cos[(2 π)/n 08+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 08+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])]},

{r Sin[(2 π)/n 01+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 01+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])],Sqrt[(k1+k2-k)/10] r Cos[(2 π)/n 01+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 01+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])]},

{r Sin[(2 π)/n 06+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 06+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])],Sqrt[(k1+k2-k)/10] r Cos[(2 π)/n 06+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 06+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])]},

{r Sin[(2 π)/n 11+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 11+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])],Sqrt[(k1+k2-k)/10] r Cos[(2 π)/n 11+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 11+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])]},

{r Sin[(2 π)/n 04+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 04+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])],Sqrt[(k1+k2-k)/10] r Cos[(2 π)/n 04+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 04+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])]},

{r Sin[(2 π)/n 09+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 09+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])],Sqrt[(k1+k2-k)/10] r Cos[(2 π)/n 09+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 09+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])]},

{r Sin[(2 π)/n 02+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 02+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])],Sqrt[(k1+k2-k)/10] r Cos[(2 π)/n 02+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 02+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])]},

{r Sin[(2 π)/n 07+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 07+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])],Sqrt[(k1+k2-k)/10] r Cos[(2 π)/n 07+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 07+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])]},

{r Sin[(2 π)/n 00+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 00+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])],Sqrt[(k1+k2-k)/10] r Cos[(2 π)/n 00+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 00+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])]}

}],Frame->True,PlotRange->{{-1.1,1.1},{-1.1,1.1}}],{k,k1,k2},AnimationRunning->False]




plot1b = Animate[Graphics[Point[{

{r Sin[(2 π)/n 00+((k+1) n)/(w π)+Sin[(2 π)/n 00+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π],Sqrt[k/10] r Cos[(2 π)/n 00+((k+1) n)/(w π)+Sin[(2 π)/n 00+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π]},

{r Sin[(2 π)/n 05+((k+1) n)/(w π)+Sin[(2 π)/n 05+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π],Sqrt[k/10] r Cos[(2 π)/n 05+((k+1) n)/(w π)+Sin[(2 π)/n 05+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π]},

{r Sin[(2 π)/n 10+((k+1) n)/(w π)+Sin[(2 π)/n 10+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π],Sqrt[k/10] r Cos[(2 π)/n 10+((k+1) n)/(w π)+Sin[(2 π)/n 10+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π]},

{r Sin[(2 π)/n 03+((k+1) n)/(w π)+Sin[(2 π)/n 03+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π],Sqrt[k/10] r Cos[(2 π)/n 03+((k+1) n)/(w π)+Sin[(2 π)/n 03+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π]},

{r Sin[(2 π)/n 08+((k+1) n)/(w π)+Sin[(2 π)/n 08+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π],Sqrt[k/10] r Cos[(2 π)/n 08+((k+1) n)/(w π)+Sin[(2 π)/n 08+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π]},

{r Sin[(2 π)/n 01+((k+1) n)/(w π)+Sin[(2 π)/n 01+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π],Sqrt[k/10] r Cos[(2 π)/n 01+((k+1) n)/(w π)+Sin[(2 π)/n 01+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π]},

{r Sin[(2 π)/n 06+((k+1) n)/(w π)+Sin[(2 π)/n 06+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π],Sqrt[k/10] r Cos[(2 π)/n 06+((k+1) n)/(w π)+Sin[(2 π)/n 06+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π]},

{r Sin[(2 π)/n 11+((k+1) n)/(w π)+Sin[(2 π)/n 11+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π],Sqrt[k/10] r Cos[(2 π)/n 11+((k+1) n)/(w π)+Sin[(2 π)/n 11+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π]},

{r Sin[(2 π)/n 04+((k+1) n)/(w π)+Sin[(2 π)/n 04+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π],Sqrt[k/10] r Cos[(2 π)/n 04+((k+1) n)/(w π)+Sin[(2 π)/n 04+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π]},

{r Sin[(2 π)/n 09+((k+1) n)/(w π)+Sin[(2 π)/n 09+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π],Sqrt[k/10] r Cos[(2 π)/n 09+((k+1) n)/(w π)+Sin[(2 π)/n 09+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π]},

{r Sin[(2 π)/n 02+((k+1) n)/(w π)+Sin[(2 π)/n 02+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π],Sqrt[k/10] r Cos[(2 π)/n 02+((k+1) n)/(w π)+Sin[(2 π)/n 02+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π]},

{r Sin[(2 π)/n 07+((k+1) n)/(w π)+Sin[(2 π)/n 07+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π],Sqrt[k/10] r Cos[(2 π)/n 07+((k+1) n)/(w π)+Sin[(2 π)/n 07+((k+1) n)/(w π)](1-Sqrt[(k+π)/(q+π)])+π]}

}],Frame->True,PlotRange->{{-1.1,1.1},{-1.1,1.1}}],{k,k1,k2},AnimationRunning->False]




plot2b = Animate[Graphics[Point[{

{r Sin[(2 π)/n 00+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 00+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])],Sqrt[(k1+k2-k)/10] r Cos[(2 π)/n 00+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 00+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])]},

{r Sin[(2 π)/n 05+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 05+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])],Sqrt[(k1+k2-k)/10] r Cos[(2 π)/n 05+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 05+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])]},

{r Sin[(2 π)/n 10+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 10+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])],Sqrt[(k1+k2-k)/10] r Cos[(2 π)/n 10+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 10+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])]},

{r Sin[(2 π)/n 03+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 03+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])],Sqrt[(k1+k2-k)/10] r Cos[(2 π)/n 03+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 03+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])]},

{r Sin[(2 π)/n 08+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 08+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])],Sqrt[(k1+k2-k)/10] r Cos[(2 π)/n 08+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 08+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])]},

{r Sin[(2 π)/n 01+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 01+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])],Sqrt[(k1+k2-k)/10] r Cos[(2 π)/n 01+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 01+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])]},

{r Sin[(2 π)/n 06+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 06+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])],Sqrt[(k1+k2-k)/10] r Cos[(2 π)/n 06+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 06+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])]},

{r Sin[(2 π)/n 11+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 11+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])],Sqrt[(k1+k2-k)/10] r Cos[(2 π)/n 11+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 11+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])]},

{r Sin[(2 π)/n 04+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 04+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])],Sqrt[(k1+k2-k)/10] r Cos[(2 π)/n 04+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 04+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])]},

{r Sin[(2 π)/n 09+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 09+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])],Sqrt[(k1+k2-k)/10] r Cos[(2 π)/n 09+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 09+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])]},

{r Sin[(2 π)/n 02+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 02+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])],Sqrt[(k1+k2-k)/10] r Cos[(2 π)/n 02+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 02+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])]},

{r Sin[(2 π)/n 07+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 07+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])],Sqrt[(k1+k2-k)/10] r Cos[(2 π)/n 07+((k2-k1+k+1) n)/(w π)+Sin[(2 π)/n 07+((k2-k1+k+1) n)/(w π)](1-Sqrt[(k1+k2-k+π)/(q+π)])]}

}],Frame->True,PlotRange->{{-1.1,1.1},{-1.1,1.1}}],{k,k1,k2},AnimationRunning->False]
⍩⍨⍟⎆⎉⎙⎊⎌⏏⚝⇲⇱→↓←↑↖↗↘↙↪↯↹↺↻⇅⇄⇇⇈⇉⇊⇋⇌⇒⇐⇓⇑⇜⇝⇪⇶↔⇜⇝⇠⇡⇢⇣⇪↔☜☞☟☝☯⌚␛⎋„“
‾±⁻₋⁺₊⁼₌ⁱⁿªₐₑₒₓ⁰₀¹₁²₂³₃⁴₄⁵₅⁶₆⁷₇⁸₈⁹₉⁽₍⁾₎ℎℏ⅛¼⅓⅜½⅝⅔¾⅞♀♂✯✲✽✾❅❆❇❪❫❬❭✌❤☺☹☻ツ‰÷≤≥≠≈×·√∂∂
♫∅∞≈∠∈∋∉∏∑∞∝ƒ∫∴☀☁☂★☆☇☈☎☑☒ ☼☾♻⚇⚒⚕⚖☠☢☣☧☨☪✪卐✠☭✡☮█
■□▣▤▥▦▧▨▩▭▯▮▰▱▲△▴▵◇◈◉◍◎●◐◑◒◓◔◕◖◗◘◙◢◣◤◥◧◨◩◪◫◬◭◮◰◴◵◶◷◸◹◺◻◼◽◾
Benutzeravatar
Yukterez
 
Beiträge: 155
Registriert: 08.12.2012, 21:26

Re: Vektoren und Koordinaten: Symmetrien

Beitragvon Yukterez » 18.04.2013, 16:25

⍩⍨⍟⎆⎉⎙⎊⎌⏏⚝⇲⇱→↓←↑↖↗↘↙↪↯↹↺↻⇅⇄⇇⇈⇉⇊⇋⇌⇒⇐⇓⇑⇜⇝⇪⇶↔⇜⇝⇠⇡⇢⇣⇪↔☜☞☟☝☯⌚␛⎋„“
‾±⁻₋⁺₊⁼₌ⁱⁿªₐₑₒₓ⁰₀¹₁²₂³₃⁴₄⁵₅⁶₆⁷₇⁸₈⁹₉⁽₍⁾₎ℎℏ⅛¼⅓⅜½⅝⅔¾⅞♀♂✯✲✽✾❅❆❇❪❫❬❭✌❤☺☹☻ツ‰÷≤≥≠≈×·√∂∂
♫∅∞≈∠∈∋∉∏∑∞∝ƒ∫∴☀☁☂★☆☇☈☎☑☒ ☼☾♻⚇⚒⚕⚖☠☢☣☧☨☪✪卐✠☭✡☮█
■□▣▤▥▦▧▨▩▭▯▮▰▱▲△▴▵◇◈◉◍◎●◐◑◒◓◔◕◖◗◘◙◢◣◤◥◧◨◩◪◫◬◭◮◰◴◵◶◷◸◹◺◻◼◽◾
Benutzeravatar
Yukterez
 
Beiträge: 155
Registriert: 08.12.2012, 21:26

Koordinaten, radiale Verschiebung

Beitragvon Tom Peak » 19.01.2014, 11:13

Ich habe eine Werte liste (Vertex?)

x
y
z
x
y
z
.
.
.

mit Koordinaten für Punkte in einem 3Object.

Nun möchte ich sie vom Zentrum nach einem bestimmten wert RADIAL nach aussen verschieben.

Bitte fragen wenn was unklar ist,

vielen Dank,

tom
Tom Peak
 
Beiträge: 8
Registriert: 07.04.2013, 15:49

Koordinatentransformation

Beitragvon Yukterez » 22.01.2014, 19:40

Tom Peak hat geschrieben:Ich habe eine Werte liste mit Koordinaten für Punkte in einem 3Object.
Nun möchte ich sie vom Zentrum nach einem bestimmten wert RADIAL nach aussen verschieben.
Bitte fragen wenn was unklar ist,
vielen Dank,
tom

Ich bin mir nicht sicher, was ein 3Objekt ist (3D?), aber wenn's nur radial verschoben und dabei nicht gedreht werden soll, dann ist es die selbe Formel wie auf viewtopic.php?p=178#p178

Bild
zum Vergrößern Bild anklicken


Einfach die x- und y-Werte jedes Punktes mit dem jeweiligen Versatz addieren.

Mathematica Code:

Bild
Code: Alles auswählen
Plot 2
r = Abstand, w = Winkel, s = Skalierung
Code: Alles auswählen
(* 3 Parameter *)

vx = r*Sin[π/2-w];
vy = r*Cos[π/2-w];

O1 = {{0, 0}, {2, 2}, {3, 0}, {0, 0}};

O2 = {{0*s+vx, 0*s+vy},
      {2*s+vx, 2*s+vy},
      {3*s+vx, 0*s+vy},
      {0*s+vx, 0*s+vy}};

Plot2 =
 Manipulate[
   Evaluate[
   Graphics[
           {Line[O1], Line[O2]}, Frame -> True,
PlotRange -> {{-7, 10}, {-7, 9}}, AspectRatio -> 16/17]],
             {{r, 5}, 0, 5}, {{w, 5} , 0, 2*π}, {{s, 1}, 0, 2}]

Export["Plot2.avi", Plot2, "FrameRate" -> 50]

- ◮ -

Wenn man das Objekt auch noch um den selben oder einen anderen Winkel gedreht will, baut man noch diese Formel ein (bei 3D Achsen beachten: bei z vertauscht sich Sinus und Kosinus), wobei zur Addition des Versatzes eine Multiplikation mit demselben hinzukommt:

Bild

Anwendung mit gebundener Rotation w plus separatem Regler W für die Eigenrotation (hier um den Vertex):

Bild
Code: Alles auswählen
(* 4 Parameter *)

(* X -> x*Sin[π/2-w]-y*Cos[π/2-w]; *)
(* Y -> x*Cos[π/2-w]+y*Sin[π/2-w]; *)
(* Formel zur Rotation des duplizierten Objekts *)

vx = r*Sin[π/2-w]; vy = r*Cos[π/2-w];
(* Formel zur Positionierung des duplizierten Objekts *)

xOff = 1.5; yOff = 0;
(* Offset zur Zentrierung der Rotationsachse um das Originalobjekt *)

O1 =
  {{0, 0}, {2, 2}, {3, 0}, {0, 0}};
(* x,y Koordinaten des Originalobjekts *)

O2 =
  {{xOff+vx+0*s*Sin[π/2-w+W]-0*s*Cos[π/2-w+W],
    yOff+vy+0*s*Cos[π/2-w+W]+0*s*Sin[π/2-w+W]},
   {xOff+vx+2*s*Sin[π/2-w+W]-2*s*Cos[π/2-w+W],
    yOff+vy+2*s*Cos[π/2-w+W]+2*s*Sin[π/2-w+W]},
   {xOff+vx+3*s*Sin[π/2-w+W]-0*s*Cos[π/2-w+W],
    yOff+vy+3*s*Cos[π/2-w+W]+0*s*Sin[π/2-w+W]},
   {xOff+vx+0*s*Sin[π/2-w+W]-0*s*Cos[π/2-w+W],
    yOff+vy+0*s*Cos[π/2-w+W]+0*s*Sin[π/2-w+W]}};
(* x,y Koordinaten des duplizierten Objekts *)

Plot5 =
 Manipulate[
    Evaluate[
                       Graphics[
    {Line[O1], Line[O2]}, Frame -> True,
      PlotRange -> {{-8, 10}, {-8, 10}}]],
  {{r, -6}, -6, 0}, {{w, 0} , 0, 2 π}, {{W, 0} , 0,
   2 π}, {{s, 1}, 0, 2}]

Beim Offset hat man noch die Qual der Wahl, ob man um einen Eckpunkt, den Höhenschnittpunkt, den Umkreismittelpunkt, den Inkreismittelpunkt oder den geometrischen Schwerpunkt rotieren möchte.

- ◮ -

Wenn das ganze in 3D sein soll, für die Punkte einfach eine z-Koordinate hinzufügen:

Bild
Code: Alles auswählen
Plot 3
x = Abstand X-Achse, y = Abstand Y-Achse, z = Abstand Z-Achse, w1 = Winkel 1, w2 = Winkel2, s = Skalierung
Code: Alles auswählen
(* 6 Parameter *)

vx = x*Sin[π/2-w1]; vy = x*Cos[π/2-w1];
vY = y*Sin[π/2-w2]; vZ = y*Cos[π/2-w2];

O1 = {{0, 0, 0},
      {2, 2, 0},
      {3, 0, 0},
      {0, 0, 0}};

O2 = {{0*s+vx, 0*s+vy+vY, 0*s+z+vZ},
      {2*s+vx, 2*s+vy+vY, 0*s+z+vZ},
      {3*s+vx, 0*s+vy+vY, 0*s+z+vZ},
      {0*s+vx, 0*s+vy+vY, 0*s+z+vZ}};

Plot3 = Manipulate[Evaluate[Graphics3D[
    {Line[O1], Line[O2]},
PlotRange -> {{-7, 7}, {-7, 7}, {-7, 7}}]],

    {{s, 1}, 1/2, 2},
    {{x, +0}, -4, 4},
    {{y, +0}, -5, 5},
    {{z, +0}, -7, 7},
    {{w1, 0} , 0, 2*π},
    {{w2, 0} , 0, 2*π}]

- ◭ -

Auf dem selben Weg kann man noch eine dritte vom Abstand z abhängige Drehachse mit dem Winkel w3 hinzufügen, sofern benötigt. Es lassen sich aber schon mit den Winkeln w1 und w2 alle Positionen im 3D-Raum beschreiben. Nichtsdestotrotz, von Cimena-4d sind wir es so gewöhnt:

Bild, also erweitern wir auf

Code: Alles auswählen
vx = x*Sin[π/2-w1]; vy = x*Cos[π/2-w1];               (* Winkel 1 *)
vY = y*Sin[π/2-w2]; vZ = y*Cos[π/2-w2];               (* Winkel 2 *)
Vx = z*Cos[π/2-w3]; Vz = z*Sin[π/2-w3];               (* Winkel 3 *)

O1 = {{x1, y1, z1},      (* Koordinaten unbewegtes Referenzobjekt *)
      {x2, x2, z2},
      {x3, y3, z3},
      {x1, y1, z1}};
   
O2 = {{x1*s+vx+Vx, y1*s+vy+vY, z1*s+z+vZ+Vz},  (* bewegtes Objekt *)
      {x2*s+vx+Vx, y2*s+vy+vY, z2*s+z+vZ+Vz},
      {x3*s+vx+Vx, y3*s+vy+vY, z3*s+z+vZ+Vz},
      {x1*s+vx+Vx, y1*s+vy+vY, z1*s+z+vZ+Vz}};
Code: Alles auswählen
x, y, z, w1, w2, w3 & s sind die Animationsparameter

Das geht natürlich nicht nur mit Linien, sondern allen Arten von Objekten, Flächen, und Punkt(wolk)en:

Bild
Code: Alles auswählen
(* 7 Parameter *)

vx = x*Sin[π/2-w1]; vy = x*Cos[π/2-w1];
vY = y*Sin[π/2-w2]; vZ = y*Cos[π/2-w2];
Vx = z*Cos[π/2-w3]; Vz = z*Sin[π/2-w3];
                                               (* Winkel zu Koordinatenverschiebung *)

O1a = {0, 0, 0}; O2a = {0*s+vx+Vx, 0*s+vy+vY, 0*s+vZ+Vz};
O1b = {1, 0, 0}; O2b = {1*s+vx+Vx, 0*s+vy+vY, 0*s+vZ+Vz};
O1c = {0, 1, 0}; O2c = {0*s+vx+Vx, 1*s+vy+vY, 0*s+vZ+Vz};
O1d = {0, 0, 1}; O2d = {0*s+vx+Vx, 0*s+vy+vY, 1*s+vZ+Vz};
                                                            (* Ursprungskoordinaten *)

Plot4 = Manipulate[Evaluate[Graphics3D[
       {Point[O1a], Point[O1b], Point[O1c], Point[O1d],
        Point[O2a], Point[O2b], Point[O2c], Point[O2d]},
                        PlotRange -> {{-7, 7}, {-7, 7}, {-7, 7}}]],
                                                                      (* Plotbefehl *)

  {{x, 0}, -4, 4},
  {{y, 0}, -4, 4},
  {{z, 0}, -4, 4},
  {{w1, 0} , 0, 2*π},
  {{w2, 0} , 0, 2*π},
  {{w3, 0} , 0, 2*π},
  {{s, 1}, 1/2, 2}]
                                                 (* Animations/Manipulate-Parameter *)

Bei Bedarf kann auch hier statt der oder zusätzlich zur stabilisierten Rotation eine gebundene Rotation und/oder Eigenrotation eingebaut werden (je mehr Einstellungsmöglichkeiten, desto mehr Regler). Je nach Anwendung kann man die Regler auch reduzieren, indem man sie in Abhängigkeit zueinander setzt (zB W=w, w=Cos[W], usw).
⍩⍨⍟⎆⎉⎙⎊⎌⏏⚝⇲⇱→↓←↑↖↗↘↙↪↯↹↺↻⇅⇄⇇⇈⇉⇊⇋⇌⇒⇐⇓⇑⇜⇝⇪⇶↔⇜⇝⇠⇡⇢⇣⇪↔☜☞☟☝☯⌚␛⎋„“
‾±⁻₋⁺₊⁼₌ⁱⁿªₐₑₒₓ⁰₀¹₁²₂³₃⁴₄⁵₅⁶₆⁷₇⁸₈⁹₉⁽₍⁾₎ℎℏ⅛¼⅓⅜½⅝⅔¾⅞♀♂✯✲✽✾❅❆❇❪❫❬❭✌❤☺☹☻ツ‰÷≤≥≠≈×·√∂∂
♫∅∞≈∠∈∋∉∏∑∞∝ƒ∫∴☀☁☂★☆☇☈☎☑☒ ☼☾♻⚇⚒⚕⚖☠☢☣☧☨☪✪卐✠☭✡☮█
■□▣▤▥▦▧▨▩▭▯▮▰▱▲△▴▵◇◈◉◍◎●◐◑◒◓◔◕◖◗◘◙◢◣◤◥◧◨◩◪◫◬◭◮◰◴◵◶◷◸◹◺◻◼◽◾
Benutzeravatar
Yukterez
 
Beiträge: 155
Registriert: 08.12.2012, 21:26

Winkel nach Koordinaten

Beitragvon Yukterez » 20.02.2014, 00:30

Hat man im umgekehrten Fall die Koordinaten und sucht den passenden Winkel
(in diesem Beispiel: x=9, y=3 -> x=y*3)
nimmt man entweder

Code: Alles auswählen
FindRoot[Sin[π/2-w] - Cos[π/2-w]*3, {w, 0}]

oder

Code: Alles auswählen
Solve[Sin[π/2-w] == Cos[π/2-w]*3 && w > 0 && w < π, w]

Ausgabe ist hier natürlich in der Einheit Radiant; will man Grad einfach mal 180 durch π rechnen.

Bild
⍩⍨⍟⎆⎉⎙⎊⎌⏏⚝⇲⇱→↓←↑↖↗↘↙↪↯↹↺↻⇅⇄⇇⇈⇉⇊⇋⇌⇒⇐⇓⇑⇜⇝⇪⇶↔⇜⇝⇠⇡⇢⇣⇪↔☜☞☟☝☯⌚␛⎋„“
‾±⁻₋⁺₊⁼₌ⁱⁿªₐₑₒₓ⁰₀¹₁²₂³₃⁴₄⁵₅⁶₆⁷₇⁸₈⁹₉⁽₍⁾₎ℎℏ⅛¼⅓⅜½⅝⅔¾⅞♀♂✯✲✽✾❅❆❇❪❫❬❭✌❤☺☹☻ツ‰÷≤≥≠≈×·√∂∂
♫∅∞≈∠∈∋∉∏∑∞∝ƒ∫∴☀☁☂★☆☇☈☎☑☒ ☼☾♻⚇⚒⚕⚖☠☢☣☧☨☪✪卐✠☭✡☮█
■□▣▤▥▦▧▨▩▭▯▮▰▱▲△▴▵◇◈◉◍◎●◐◑◒◓◔◕◖◗◘◙◢◣◤◥◧◨◩◪◫◬◭◮◰◴◵◶◷◸◹◺◻◼◽◾
Benutzeravatar
Yukterez
 
Beiträge: 155
Registriert: 08.12.2012, 21:26


Zurück zu Programmierung

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

StatCounter - Free Web Tracker and Counter

site stats
Statistik