Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengira Data dengan Lengkung Bezier Kubik Berbilang Segmen Terkandas oleh Jarak dan Kelengkungan?
Menghampirkan Data dengan Keluk Bezier Kubik Berbilang Segmen dengan Jarak dan Kekangan Kelengkungan
Pernyataan Masalah:
Matlamatnya adalah untuk menganggarkan titik data geografi yang diberikan dengan lengkung Bezier padu berbilang segmen di bawah dua kekangan:
Penyelesaian:
Penyelesaian dua langkah dicadangkan:
Buat Penghampiran B-Spline:
Tukar B-Spline kepada Bezier Curve:
Contoh Kod:
Berikut ialah coretan Python yang menunjukkan pendekatan:
<code class="python">import matplotlib.pyplot as plt import numpy as np from scipy import interpolate # Assume the data points are stored in lists x and y. # Create B-spline approximation tck, u = interpolate.splprep([x, y], s=3) # Adjust s parameter for smoothness # Generate new parameter values for plotting unew = np.arange(0, 1.01, 0.01) # Evaluate B-spline at new parameter values out = interpolate.splev(unew, tck) # Convert B-spline to Bezier curve bezier_points = b_spline_to_bezier_series(tck) # Plot the data points, B-spline, and Bezier curve plt.figure() plt.plot(x, y, out[0], out[1], *bezier_points) # Replace * with individual Bezier curves plt.show()</code>
Nota:
Penyelesaian mengutamakan kelancaran daripada ketepatan. Untuk anggaran yang lebih ketat, mungkin perlu menukar sedikit kelancaran untuk memastikan kekangan jarak dipenuhi.
Atas ialah kandungan terperinci Bagaimana untuk Mengira Data dengan Lengkung Bezier Kubik Berbilang Segmen Terkandas oleh Jarak dan Kelengkungan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!