@Craige_Hales 그리고 @mitulshah ,
베지어 곡선에 대한 나의 지식과 경험은 제한적입니다. 나는 초안(건축 및 조경) 디자인과 의류 디자인에서 그들의 유용성을 보았습니다. 물론 수학적 토대는 항상 나에게 흥미로웠다.인터넷을 좀 뒤져보니 그런 내용이 있더라구요 @mitulshah Excel의 베지어 스플라인, B-스플라인, 알고리즘에 대한 의 탐구는 일반적인 것입니다. 링크 1개 Excel 스무딩 알고리즘 질문 zip 파일에 대한 링크가 포함되어 있습니다. http://xlrotor.com/Smooth_curve_bezier_example_file.zip 이 zip에는 Excel의 평활화된 곡선에서 픽셀을 가져와 곡선의 점을 보간하기 위한 자동화 루틴이 내장된 베지어 곡선의 2002 .xls 예제가 포함되어 있습니다.이는 "정확"하지 않으며 곡선에서 4픽셀을 잡아내는 기술을 사용합니다. 끝점은 첫 번째 보간점과 마지막 보간점에서 두 번 사용됩니다.
그래프를 만들기 위한 GraphBuilder Line 요소 옵션에 대한 Craige의 게시물 이후 JMP에서 발견한 것 중 하나는 끝점 기울기가 Excel의 기울기와 매우 유사하기 때문에 이 플랫폼에 사용되는 스플라인은 다른 알고리즘을 사용해야 한다는 것입니다. GB 플롯의 픽셀을 추출하여 일부 DSP(디지털 신호 처리)를 수행하는 스크립트를 시작했습니다. 그런 다음 위에 나열된 웹 링크를 찾았고 Excel 스프레드시트에서 보간된 점을 사용하고 이를 GB 선(곡선)과 오버레이하기로 결정했습니다. 아래 첫 번째 스크린샷은 JMP 테이블에 스핀 B 점으로 추가된 베지어 스플라인 및 보간 점이 있는 Excel 그래프가 포함된 Excel 워크시트를 보여줍니다.두 번째 그림은 Excel 보간점이 중첩된 JMP GB 선(곡선)을 보여줍니다.
Excel Interpolated Points > Spin B in JMP tableExcel Interpolated Points > Spin B in JMP tableExcel 보간점 > JMP 테이블의 스핀 B
JMP Line(curve) spline overlaid with Excel interpolationsJMP Line(curve) spline overlaid with Excel interpolationsExcel 보간과 중첩된 JMP 선(곡선) 스플라인
위쪽 꼬리의 JMP 선(곡선)에서 보간이 약간 오프셋된 것을 확인할 수 있습니다. 이는 보간 알고리즘, Excel 및 JMP 곡선의 차이 또는 둘의 조합으로 인해 발생할 수 있습니다. 동일한 4개의 점은 Excel 차트의 곡선보다 약간 높습니다.
그래서 제 결론은 JMP GB 선(곡선) 스플라인이 Excel의 베지어 곡선과 매우 유사하다는 것입니다.내 관심은 높지 않지만, 지루해지면 DSP 스크립트를 완료하여 선(곡선) 포인트를 "얻을" 수도 있습니다.이전 버전의 JMP에서는 저장된 .jrn 파일의 곡선 점을 보고했지만 이제는 숨겨진 함수에 대한 참조만 .jrn 파일에 있습니다.
이제, 제가 이 문제에 관해 상담을 하고 있다면 제가 먼저 던질 질문은 다음과 같습니다.
- 이 데이터(4점)는 어디에서 왔으며 목표는 무엇입니까?
- 선 및 다항식과 같은 스플라인 곡선은 복잡한 함수 관계 대신 교정 곡선(보간에 사용되는 곡선)을 만드는 데 유용할 수 있습니다. 그러나 정확성을 위해 곡선에서 보간을 계산하는 경우 정기적인 데이터 간격과 복제가 권장됩니다. X 값의 간격이 불규칙하기 때문에 X와 Y 모두에 영향을 미치는 세 번째(또는 그 이상의) 변수가 있는지 궁금합니다. 예를 들어, 둘 다 일일 또는 주간 테스트 판독값의 판독값입니다.
- X와 Y의 관계를 뒷받침하는 기본적인 첫 번째 원칙이 있습니까? 예를 들어 용량 반응; 세포 성장; 오염-부식 등
- 왜 이렇게 포인트가 적나요? 복제 비용은 얼마입니까?
근본적인 기본 비선형 관계가 있는 경우 데이터를 얻고 관계를 피팅하여 매개변수(학습 곡선, 저하 곡선) 등을 추정하는 노력이 가치 있는 경우가 많다는 것이 내 경험입니다. Craige Hales, 제어점(수 및 위치), 매듭점 및 끝점의 작은 차이는 특히 "x"의 간격이 넓은 경우 스플라인 곡률(곡선의 점)에 큰 차이를 만들 수 있습니다.Excel이 의도적으로 곡선 스플라인에 대한 점이나 공식을 게시하지 않았기 때문에 사람들이 이를 추정을 위한 적합 모델처럼 사용하지 않을 것이라는 것이 내 직감입니다.X 및 복제의 "닫기" 값을 사용하면 보간이 훨씬 덜 위험합니다.
스플라인은 JMP와 Excel에서 동일하지 않은 시작과 끝의 기울기를 선택합니다. 스플라인은 각 점 쌍 사이에 서로 다른 입방체를 사용하며 기울기와 곡률을 일치시키면서 많은 수의 점을 원활하게 연결할 수 있습니다. 점이 4개만 있는 경우 3차를 4개 점에 맞추고 공식을 사용하여 보간을 수행하는 것이 합리적일 수 있습니다.
아마도 통계학자의 답변을 얻을 수도 있을 것입니다.
Graph Builder can do it. So can Fit Y by X.Graph Builder can do it. So can Fit Y by X.그래프 빌더가 그것을 할 수 있습니다. 그래서 Y를 X로 맞출 수 있습니다.
여기서 혼란을 드려 죄송합니다.
데이터:

JMP에서는 Fit Y by X를 수행했습니다.


엑셀에 같은 데이터를 입력하면

나는 이것을 얻는다

JMP 녹색 선에서는 왼쪽 아래(X 값 2-3 사이) 곡선에 약간의 진동/꼬임이 있는 반면 Excel에서는 그렇지 않습니다.
최종 목표는 선에서 값을 보간하는 것입니다. 따라서 Excel과 JMP가 서로 다른 두 선을 제공하면 결국에는 다른 보간 값이 생성됩니다.
이것이 내가 하려는 일이다
부드러운 곡선 기능을 사용하여 Excel의 산점도를 복제합니다.
유연한 척추를 사용하여 JMP fit Y by X를 사용하면 Excel에서 산점도 + 부드러운 선으로 생성하는 곡선과 다른 곡선이 나타납니다. Excel에서 베지어 곡선 맞춤을 사용하고 있다고 생각합니다.
데이터 점수:
스핀 | X | 와이
A | 2.41 | 846.8692
A | 0.93 | 77.043
A | 1.37 | 155.2193
A | 1.96 | 390.4639

유연한 스플라인을 사용하여 이 선을 그리는 것이 아니라 베지어 곡선을 강제로 적용하고 싶습니다. 그게 말이 되기를 바랍니다.
감사해요
안녕하세요 크레이지,
path() 기능과 이동점, 제어점, 베지어점을 이해하려고 합니다.
제가 가지고 있는 데이터에서 이 네 가지 포인트를 얻었습니다.
포인트 =
[ 0.93 77.04 1,
1.37155.22 0,
1.96 390.46 0,
2.41 846.87 3];
이것을 경로 함수에 넣으면 점 1과 점 4 사이에 선이 생기지만 점 2와 점 3을 통과하지 않습니다. 뭔가 빠졌나요?
감사해요.
수행해야 할 작업에 따라 여러 답변이 제공됩니다. 여기에 몇 가지가 있습니다.
2D 그래프의 경우 경로 기능을 사용할 수 있습니다. 스크립팅 색인에 Bézier로 표기되어 있기 때문에 Bezier를 검색하여 찾을 수 없습니다. 대신 zier를 검색해 보세요.@XanGregg @sheila_loring
이 예제는 드래그 가능한 핸들을 사용하여 스크립팅 인덱스 예제를 확장합니다.
// initial data; points 3 and 5 are not initially constrained about point 4
points = [
10 10 1,// move-to
30 70 0,// control point
40 10 0,// control point
50 40 3,// bezier
60 60 0,// control point
70 20 0,// control point
90 10 3 // bezier
];
// moving a square handle will call this function to
// copy the handle coordinates to the matrix
setpoint = Function( {index, x, y}, // parameters
{angle, distance}, // local variables
// copy to the matrix
points[index, 1] = x;
points[index, 2] = y;
// 3 and 5 are constrained about 4, comment out to see why...
// if the angles don't match, it isn't smooth
If( index == 3 | index == 5,
other = If( index == 3, 5, 3 ); // if I'm 3, he must be 5, etc
// trig in radians, 2*pi is 360
// atan does all 4 quadrants with 2 arguments
angle = ATan( points[index, 2] - points[4, 2], points[index, 1] - points[4, 1] );
// maintain other's distance
distance = Sqrt( (points[other, 2] - points[4, 2]) ^ 2 + (points[other, 1] - points[4, 1]) ^ 2 );
// fix other's angle to match my angle, but opposite me
points[other, 1] = points[4, 1] + distance * Cos( angle + Pi() );
points[other, 2] = points[4, 2] + distance * Sin( angle + Pi() );
);
// redraw
gb << inval;
);
New Window( "Example",
gb = Graph Box(
Fill Color( "blue" );
// there is no good shortcut for creating handles; the JSL holds the instances
Handle( points[1, 1], points[1, 2], setpoint( 1, x, y ) );
Handle( points[2, 1], points[2, 2], setpoint( 2, x, y ) );
Handle( points[3, 1], points[3, 2], setpoint( 3, x, y ) );
Handle( points[4, 1], points[4, 2], setpoint( 4, x, y ) );
Handle( points[5, 1], points[5, 2], setpoint( 5, x, y ) );
Handle( points[6, 1], points[6, 2], setpoint( 6, x, y ) );
Handle( points[7, 1], points[7, 2], setpoint( 7, x, y ) );
// construction lines
Pen Color( "red" );
Line( {points[1, 1], points[1, 2]}, {points[2, 1], points[2, 2]} );
Line( {points[3, 1], points[3, 2]}, {points[4, 1], points[4, 2]} );
Line( {points[4, 1], points[4, 2]}, {points[5, 1], points[5, 2]} );
Line( {points[6, 1], points[6, 2]}, {points[7, 1], points[7, 2]} );
// the bezier
Pen Color( "black" );
Path( points );
)
);또한 점 4를 이동하도록 제한하여 점 3과 5도 함께 드래그해야 한다는 것을 깨달았습니다. (완료되지 않았습니다. 쉬울 것입니다.)
Bezier control pointsBezier control points베지어 제어점
어쩌면 스플라인이 필요할 수도 있습니다. 스크립팅 인덱스에서 스플라인, p-스플라인, b-스플라인의 차이점이 무엇인지 잘 모르겠습니다. 스플라인을 사용했어요 HeatColor vs 스플라인 vs 보간 이 곡선을 만들기 위해
spline coef, spline evalspline coef, spline eval스플라인 계수, 스플라인 평가
JMP의 3D OpenGL 지원에는 베지어 스플라인도 지원됩니다. https://www.jmp.com/support/help/14-2/bezier-curves.shtml 표면을 그리는 데 도움이 될 수 있습니다. 나쁜 예가 숨겨져 있습니다 FFT 비디오
훌륭한 게시물 @Duane_Hayes 큐빅 스플라인 이해
길을 가다가 우연히 만난 일이 있습니다. https://www.tinaja.com/glib/bezconn.pdf