fix lab2 add pt

This commit is contained in:
2026-02-24 22:45:31 -05:00
parent 8f2bb921aa
commit 52036af25f

View File

@@ -76,8 +76,8 @@ def ibspline(inputA, inputB=None):
elif i >= h + 1: elif i >= h + 1:
new_points.append(points[i - 1]) new_points.append(points[i - 1])
else: else:
denom = knot_vector[i+n] - knot_vector[i] denom = knot_vector[i+n-1] - knot_vector[i-1]
alpha = (t_hat - knot_vector[i]) / denom if denom > 1e-8 else 0.0 alpha = (t_hat - knot_vector[i-1]) / denom if denom > 1e-8 else 0.0
px = (1 - alpha) * points[i-1][0] + alpha * points[i][0] px = (1 - alpha) * points[i-1][0] + alpha * points[i][0]
py = (1 - alpha) * points[i-1][1] + alpha * points[i][1] py = (1 - alpha) * points[i-1][1] + alpha * points[i][1]
new_points.append((px, py)) new_points.append((px, py))
@@ -87,7 +87,7 @@ def ibspline(inputA, inputB=None):
vY = [p[1] for p in new_points] vY = [p[1] for p in new_points]
# Update knot vector: insert t_hat # Update knot vector: insert t_hat
knot_vector.insert(h + 1, t_hat) knot_vector.insert(h, t_hat)
outputPlotMessage(f"Added Control Point. (m={len(vX)})") outputPlotMessage(f"Added Control Point. (m={len(vX)})")
redrawPlot(vX, vY) redrawPlot(vX, vY)
@@ -337,18 +337,6 @@ def ibspline(inputA, inputB=None):
enableButtons() enableButtons()
return return
# Pick and move a vertex
def pickPointCallback(event):
global iv_selected, cid_moveCallback
if (len(event.ind) < 1): return
if (event.ind[0] >= 0) and (event.ind[0] < len(vX)):
iv_selected = event.ind[0]
cid_moveCallback = \
fig.canvas.mpl_connect('button_release_event', moveVertexCallback)
return
# Move selected vertex to location (event.xdata, event.ydata) # Move selected vertex to location (event.xdata, event.ydata)
def moveVertexCallback(event): def moveVertexCallback(event):