FoxyCorndog

pov graph

Mar 23rd, 2012
168
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #declare line             = 0;
  2. #declare parabola         = 1;
  3. #declare hyperbola        = 2;
  4. #declare sine             = 3;
  5. #declare cosine           = 4;
  6. #declare tangent          = 5;
  7. #declare logarithm        = 6;
  8. #declare naturalLogarithm = 7;
  9.  
  10. #declare category         = parabola;
  11.  
  12. //-----------------------------------
  13.  
  14. #declare graphHeight      = 50;
  15. #declare graphWidth       = 50;
  16. #declare incrementX       = -graphWidth  / 2;
  17. #declare incrementY       = -graphHeight / 2;
  18. #declare gridWidth        = 0.07;
  19. #declare gridDepth        = 0.5;
  20. #declare axesWidth        = 0.5;
  21. #declare axesDepth        = 2.5;
  22. #declare gridSpacing      = 2;
  23. #declare tickMarkLength   = 1.5;
  24.  
  25. #declare graphXPos        = incrementX;
  26. #declare graphYPos        = incrementY;
  27.  
  28. #declare elementsZPos     = -axesDepth / 2;
  29.  
  30. #declare pointCloseness   = 0.1;
  31.  
  32. camera
  33. {
  34.     location <0, 0, -graphHeight * 3>
  35.     look_at <0, 0, 0>
  36. }
  37.  
  38. light_source
  39. {
  40.     <0, 0, -graphHeight>
  41.     color rgb <1, 1, 1>
  42. }
  43.  
  44. #while (incrementY <= graphHeight / 2)
  45.    
  46.     #while (incrementX <= graphWidth / 2)
  47.        
  48.         box
  49.         {
  50.             <(incrementX) - (gridWidth / 2), -tickMarkLength / 2, -gridDepth / 2>
  51.             <(incrementX) + (gridWidth / 2), tickMarkLength / 2, gridDepth / 2>
  52.            
  53.             pigment
  54.             {
  55.                 color rgb <1, 1, 1>
  56.             }
  57.         }
  58.        
  59.         #declare incrementX = incrementX + 1;
  60.        
  61.     #end
  62.    
  63.     box
  64.     {
  65.         <-tickMarkLength / 2, incrementY - (gridWidth / 2), -gridDepth / 2>
  66.         <tickMarkLength / 2, incrementY + (gridWidth / 2) , gridDepth / 2>
  67.        
  68.         pigment
  69.         {
  70.             color rgb <1, 1, 1>
  71.         }
  72.     }
  73.    
  74.     #declare incrementY = incrementY + 1;
  75.    
  76. #end
  77.  
  78. box
  79. {
  80.     <-axesWidth / 2, -(graphHeight / 2), -axesDepth / 2>
  81.     <axesWidth / 2, graphHeight / 2, axesDepth / 2>
  82.    
  83.     pigment
  84.     {
  85.         color rgb <1, 0, 0>
  86.     }
  87. }
  88.  
  89. box
  90. {
  91.     <-(graphWidth / 2), -axesWidth / 2  , -axesDepth / 2>
  92.     <(graphWidth / 2), axesWidth / 2, axesDepth / 2>
  93.    
  94.     pigment
  95.     {
  96.         color rgb <1, 0, 0>
  97.     }
  98. }
  99.  
  100. #if (category = line)
  101.  
  102.     #declare varX          = 0;
  103.     #declare varY          = 0;
  104.     #declare varSlope      = 2;
  105.     #declare varYIntercept = 5;
  106.  
  107.     #declare varX          = ((-graphYPos) - varYIntercept) / (varSlope);
  108.     #declare varY          = (varSlope * varX) + varYIntercept;
  109.    
  110.     #declare varX2         = ((graphYPos) - varYIntercept) / (varSlope);
  111.     #declare varY2         = (varSlope * varX) + varYIntercept;
  112.  
  113.     cylinder
  114.     {
  115.         <varX, -graphYPos, 0>
  116.         <varX2, graphYPos, 0>
  117.         0.2
  118.        
  119.         pigment
  120.         {
  121.             color rgb <0, 0, 1>
  122.         }
  123.     }
  124.  
  125. #end
  126.  
  127. #if (category = parabola)
  128.  
  129.     #declare upOrDown        = 0;
  130.     #declare leftOrRight     = 1;
  131.    
  132.     //-------------------------------------------
  133.     //- CHANGE THESE ONLY -----------------------
  134.     #declare opens           = upOrDown;
  135.     #declare varP            = 5;
  136.     #declare varH            = 6;
  137.     #declare varK            = -3;
  138.     //-------------------------------------------
  139.     //-------------------------------------------
  140.    
  141.     #declare control         = 0;
  142.     #declare start           = 0;
  143.     #declare varX            = 0;
  144.     #declare varY            = 0;
  145.    
  146.     #if (varP > 0)
  147.    
  148.         #declare posOrNeg = 1;
  149.    
  150.     #else
  151.    
  152.         #declare posOrNeg = -1;
  153.    
  154.     #end
  155.    
  156.     #if (opens = upOrDown)
  157.        
  158.         #declare start   = (graphWidth / 2) * -posOrNeg;
  159.         #declare varX = -graphWidth / 2;
  160.        
  161.         #declare varY2 = ((1 / (4 * varP)) * (((-graphWidth / 2) - varH) * ((-graphWidth / 2) - varH))) + varK;
  162.         #declare varX2 = sqrt(((4 * varP) * (varY2 - varK))) + varH;
  163.        
  164.         #declare gWidth = sqrt(pow(varX2 - varX, 2));
  165.        
  166.         //#declare varX    = sqrt(abs((4 * varP) * ((-graphHeight / 2) - varK))) + varH;
  167.         #declare theEnd  = varX + (gWidth * ((clock) / 31));
  168.         #debug concat("Var x: ", str((((31 / (clock)))), 0, 1), ", ", str(varX2, 0, 1), " : ", str(gWidth, 0, 1))
  169.         //#declare varX    = varX - (varX - varH) * 2;
  170.         #declare control = varX;
  171.        
  172.     #end
  173.    
  174.     #if (opens = leftOrRight)
  175.        
  176.         #declare start   = (graphWidth / 2) * -posOrNeg;
  177.         #declare varY    = sqrt(abs((4 * varP) * ((graphWidth) - varH))) + varK;
  178.         #declare theEnd  = varY;
  179.         #declare varY    = varY - (varY - varK) * 2;
  180.         #declare control = varY;
  181.        
  182.     #end
  183.    
  184.     #declare goneThrough = false;
  185.    
  186.     #while (control < theEnd)
  187.         cylinder
  188.         {
  189.             <varX, varY, elementsZPos>
  190.            
  191.             #if (opens = upOrDown)
  192.                 #declare varY = ((1 / (4 * varP)) * ((varX - varH) * (varX - varH))) + varK;
  193.                 #declare varX = varX + (pointCloseness);
  194.             #end
  195.            
  196.             #if (opens = leftOrRight)
  197.                 #declare varX = sqrt(((4 * varP) * (varY - varK))) + varH;
  198.                 #declare varY = varY + (pointCloseness);
  199.             #end
  200.  
  201.            
  202.             #declare control = control + (pointCloseness);
  203.            
  204.             <varX, varY, elementsZPos>
  205.            
  206.             #if (goneThrough)
  207.                
  208.                 0.2
  209.                
  210.             #else
  211.                
  212.                 0.0
  213.                
  214.             #end
  215.            
  216.             pigment
  217.             {
  218.                 color rgb <0, 0, 1>
  219.             }
  220.         }
  221.        
  222.         #declare goneThrough = true;
  223.        
  224.     #end
  225.  
  226. #end
  227.  
  228. #if (category = hyperbola)
  229.    
  230.     #declare upOrDown        = 0;
  231.     #declare leftOrRight     = 1;
  232.    
  233.     //-------------------------------------------
  234.     //- CHANGE THESE ONLY -----------------------
  235.     #declare opens           = upOrDown;
  236.     #declare varP            = 5;
  237.     #declare varH            = 6;
  238.     #declare varK            = -3;
  239.     //-------------------------------------------
  240.     //-------------------------------------------
  241.    
  242.     #declare control         = 0;
  243.     #declare start           = 0;
  244.     #declare varX            = 0;
  245.     #declare varY            = 0;
  246.    
  247.     #if (varP > 0)
  248.    
  249.         #declare posOrNeg = 1;
  250.    
  251.     #else
  252.    
  253.         #declare posOrNeg = -1;
  254.    
  255.     #end
  256.    
  257.     #if (opens = upOrDown)
  258.        
  259.         #declare start   = (graphHeight / 2) * -posOrNeg;
  260.         #declare varX    = sqrt(abs((4 * varP) * ((graphHeight) - varK))) + varH;
  261.         #declare theEnd  = varX;
  262.         #declare varX    = varX - (varX - varH) * 2;
  263.         #declare control = varX;
  264.        
  265.         #declare theEnd = theEnd - ( / (30 - clock));
  266.        
  267.     #end
  268.    
  269.     #if (opens = leftOrRight)
  270.        
  271.         #declare start   = (graphWidth / 2) * -posOrNeg;
  272.         #declare varY    = sqrt(abs((4 * varP) * ((graphWidth) - varH))) + varK;
  273.         #declare theEnd  = varY;
  274.         #declare varY    = varY - (varY - varK) * 2;
  275.         #declare control = varY;
  276.        
  277.         #declare theEnd = theEnd - ( / (30 - clock));
  278.        
  279.     #end
  280.    
  281.     #declare goneThrough = false;
  282.    
  283.     #while (control < theEnd)
  284.        
  285.         cylinder
  286.         {
  287.             <varX, varY, elementsZPos>
  288.            
  289.             #if (opens = upOrDown)
  290.                 #declare varY = ((1 / (4 * varP)) * ((varX - varH) * (varX - varH))) + varK;
  291.                 #declare varX = varX + (pointCloseness);
  292.             #end
  293.            
  294.             #if (opens = leftOrRight)      
  295.                 #declare varX = ((1 / (4 * varP)) * ((varY - varK) * (varY - varK))) + varH;
  296.                 #declare varY = varY + (pointCloseness);
  297.             #end
  298.            
  299.  
  300.            
  301.             #declare control = control + (pointCloseness);
  302.            
  303.             <varX, varY, elementsZPos>
  304.            
  305.             #if (goneThrough)
  306.                
  307.                 0.2
  308.                
  309.             #else
  310.                
  311.                 0.0
  312.                
  313.             #end
  314.            
  315.             pigment
  316.             {
  317.                 color rgb <0, 0, 1>
  318.             }
  319.         }
  320.        
  321.         #declare goneThrough = true;
  322.        
  323.     #end
  324.    
  325. #end
  326.  
  327. #if (category = sine)
  328.    
  329.     #declare varNum      = 2;
  330.     #declare varPow      = 1;
  331.     #declare varSinCooff = 8;
  332.    
  333.     #declare varX = -graphWidth;
  334.     #declare varY = 0;
  335.    
  336.     #declare goneThrough = false;
  337.    
  338.     #while (varX < graphWidth)
  339.            
  340.         cylinder
  341.         {
  342.             <varX, varY, elementsZPos>
  343.            
  344.             #declare varY = varSinCooff * sin(varNum + pow(varX, varPow));
  345.            
  346.             #declare varX = varX + pointCloseness;
  347.            
  348.             <varX, varY, elementsZPos>
  349.            
  350.             #if (goneThrough)
  351.                
  352.                 0.2
  353.                
  354.             #else
  355.            
  356.                 0.0
  357.                
  358.             #end
  359.            
  360.             pigment
  361.             {
  362.                 color rgb <0, 0, 1>
  363.             }
  364.         }
  365.        
  366.         #declare goneThrough = true;
  367.                    
  368.     #end
  369.    
  370. #end
  371.  
  372. #if (category = cosine)
  373.    
  374.     #declare varNum      = 2;
  375.     #declare varPow      = 1;
  376.     #declare varCosCooff = 8;
  377.    
  378.     #declare varX = -graphWidth;
  379.     #declare varY = 0;
  380.    
  381.     #declare goneThrough = false;
  382.    
  383.     #while (varX < graphWidth)
  384.            
  385.         cylinder
  386.         {
  387.             <varX, varY, elementsZPos>
  388.            
  389.             #declare varY = varCosCooff * cos(varNum + pow(varX, varPow));
  390.            
  391.             #declare varX = varX + pointCloseness;
  392.            
  393.             <varX, varY, elementsZPos>
  394.            
  395.             #if (goneThrough)
  396.                
  397.                 0.2
  398.                
  399.             #else
  400.            
  401.                 0.0
  402.                
  403.             #end
  404.            
  405.             pigment
  406.             {
  407.                 color rgb <0, 0, 1>
  408.             }
  409.         }
  410.        
  411.         #declare goneThrough = true;
  412.                    
  413.     #end
  414.    
  415. #end
  416.  
  417. #if (category = tangent)
  418.    
  419.     #declare varNum      = 2;
  420.     #declare varPow      = 1;
  421.     #declare varTanCooff = 8;
  422.    
  423.     #declare varX = -graphWidth;
  424.     #declare varY = 0;
  425.    
  426.     #declare goneThrough = false;
  427.    
  428.     #while (varX < graphWidth)
  429.            
  430.         cylinder
  431.         {
  432.             <varX, varY, elementsZPos>
  433.            
  434.             #declare varY = varTanCooff * tan(varNum + pow(varX, varPow));
  435.            
  436.             #declare varX = varX + pointCloseness;
  437.            
  438.             <varX, varY, elementsZPos>
  439.            
  440.             #if (goneThrough)
  441.                
  442.                 0.2
  443.                
  444.             #else
  445.            
  446.                 0.0
  447.                
  448.             #end
  449.            
  450.             pigment
  451.             {
  452.                 color rgb <0, 0, 1>
  453.             }
  454.         }
  455.        
  456.         #declare goneThrough = true;
  457.                    
  458.     #end
  459.    
  460. #end
  461.  
  462. #if (category = logarithm)
  463.    
  464.     #declare varNum      = 2;
  465.     #declare varPow      = 1;
  466.     #declare varLogCooff = 8;
  467.    
  468.     #declare varX = -graphWidth;
  469.     #declare varY = 0;
  470.    
  471.     #declare goneThrough = false;
  472.    
  473.     #while (varX < graphWidth)
  474.        
  475.         #if (varNum + pow(varX, varPow) > 0)
  476.            
  477.             cylinder
  478.             {
  479.                 <varX, varY, elementsZPos>
  480.                
  481.                 #declare varY = varLogCooff * log(varNum + pow(varX, varPow));
  482.                
  483.                 #declare varX = varX + pointCloseness;
  484.                
  485.                 <varX, varY, elementsZPos>
  486.                
  487.                 #if (goneThrough)
  488.                    
  489.                     0.2
  490.                    
  491.                 #else
  492.                
  493.                     0.0
  494.                    
  495.                 #end
  496.                
  497.                 pigment
  498.                 {
  499.                     color rgb <0, 0, 1>
  500.                 }
  501.             }
  502.            
  503.             #declare goneThrough = true;
  504.            
  505.         #else
  506.            
  507.             #declare varX = varX + pointCloseness;
  508.            
  509.         #end
  510.                    
  511.     #end
  512.    
  513. #end
  514.  
  515. #if (category = naturalLogarithm)
  516.    
  517.     #declare varNum      = 2;
  518.     #declare varPow      = 1;
  519.     #declare varLnCooff = 8;
  520.    
  521.     #declare varX = -graphWidth;
  522.     #declare varY = 0;
  523.    
  524.     #declare goneThrough = false;
  525.    
  526.     #while (varX < graphWidth)
  527.        
  528.         #if (varNum + pow(varX, varPow) > 0)
  529.            
  530.             cylinder
  531.             {
  532.                 <varX, varY, elementsZPos>
  533.                
  534.                 #declare varY = varLnCooff * ln(varNum + pow(varX, varPow));
  535.                
  536.                 #declare varX = varX + pointCloseness;
  537.                
  538.                 <varX, varY, elementsZPos>
  539.                
  540.                 #if (goneThrough)
  541.                    
  542.                     0.2
  543.                    
  544.                 #else
  545.                
  546.                     0.0
  547.                    
  548.                 #end
  549.                
  550.                 pigment
  551.                 {
  552.                     color rgb <0, 0, 1>
  553.                 }
  554.             }
  555.            
  556.             #declare goneThrough = true;
  557.            
  558.         #else
  559.            
  560.             #declare varX = varX + pointCloseness;
  561.            
  562.         #end
  563.                    
  564.     #end
  565.    
  566. #end
  567.  
  568.  
  569.  
  570. ; POV-Ray animation ini file
  571. Antialias=Off
  572. Antialias_Threshold=0.1
  573. Antialias_Depth=2
  574.  
  575. Input_File_Name="Graph.pov"
  576.  
  577. Initial_Frame=1
  578. Final_Frame=30
  579. Initial_Clock=1
  580. Final_Clock=32
  581.  
  582. Cyclic_Animation=on
  583. Pause_when_Done=off
RAW Paste Data