mirror of
				https://code.rhodecode.com/u/OOOOOOOOOOOOOOOO/OOOOOOOOOOOOOOOO/000080-0-8-088-00-080-00-880-8-0-080000
				synced 2025-10-21 09:48:43 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			35 lines
		
	
	
		
			No EOL
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			No EOL
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import plotly.graph_objects as go
 | |
| import numpy as np
 | |
| 
 | |
| # Define the curvature function
 | |
| def kappa(x):
 | |
|     return (1-((-((-1)**np.floor(x/np.pi*2)*(np.exp(-1/((x/np.pi*2)-np.floor((x/np.pi*2))))
 | |
|             /(np.exp(-1/((x/np.pi*2)-np.floor((x/np.pi*2))))+np.exp(-1/(1-(x/np.pi*2)+np.floor((x/np.pi*2))))))) +
 | |
|             ((-1)**np.floor((x/np.pi*2)/1)*(np.exp(-1/(1-(x/np.pi*2)+np.floor((x/np.pi*2))))/(np.exp(-1/((x/np.pi*2)-
 | |
|             np.floor((x/np.pi*2))))+np.exp(-1/(1-(x/np.pi*2)+np.floor((x/np.pi*2))))))))/2 + .5))
 | |
| 
 | |
| # Generate x values
 | |
| x_vals = np.linspace(0, 4*np.pi, 1000)
 | |
| 
 | |
| # Compute kappa values
 | |
| kappa_vals = kappa(x_vals)
 | |
| 
 | |
| # Integrate kappa values to get theta values (angles)
 | |
| theta_vals = np.cumsum(kappa_vals) * (x_vals[1]-x_vals[0])
 | |
| 
 | |
| # Compute x and y coordinates of the curve
 | |
| x_coords = np.cumsum(np.cos(theta_vals)) * (x_vals[1]-x_vals[0])
 | |
| y_coords = np.cumsum(np.sin(theta_vals)) * (x_vals[1]-x_vals[0])
 | |
| 
 | |
| # Create a plot using plotly
 | |
| fig = go.Figure()
 | |
| 
 | |
| # Add line to the figure for the curve
 | |
| fig.add_trace(go.Scatter(x=x_coords, y=y_coords, mode='lines', name='Curve'))
 | |
| 
 | |
| # Update layout
 | |
| fig.update_layout(
 | |
|     autosize=True,
 | |
|     xaxis=dict(scaleanchor='y', scaleratio=1) # this line sets the aspect ratio
 | |
| )
 | |
| fig.show() | 
