기차 트랙을 나타내는 몇 가지 방법은 무엇입니까?


21

나는 작은 프로젝트를 위해 이것을 되돌아 보았지만 너무 멀지 않았습니다. 사용자가 기차 트랙을 그린 다음 "트레인"이 2D 평면에서 해당 트랙을 따라갈 수 있도록하는 작은 프로그램을 만들고 싶습니다. 나는 트랙이 꽤 자유로운 형태이고 멋진 부드러운 라인을 만들고 싶습니다. 나는 큐빅 스플라인을 가지고 놀았고 괜찮은 결과를 얻었지만 스플라인을 따라 기차를 타는 데 많은 어려움을 겪었습니다. 또한 여러 트랙을 만들고 기차를 한 트랙에서 다른 트랙으로 전환하는 데 많은 어려움이있었습니다.

누구든지 알아낼 수있는 조언, 기사 또는 소스 코드가 있습니까? 감사!


3
어떤 문제가 발생했는지 설명하면 도움이됩니다.
Rachel Blum

1
나는 당신의 게임 데모를보고 싶습니다.
ashes999

답변:


10

트랙이나 도로를 그릴 때 항상 스플라인으로 시작하고 싶습니다. 그러나 마지막으로 스플라인으로 어려움을 겪고 있었을 때 ( Rachel Blum이 언급했듯이 스플라인에서의 부드러운 움직임은 매개 변수 및 거리 때문에 불안정합니다) 많은 실제 도로에서 스플라인 대신 원형 호를 사용한다고 제안했습니다. 일정한 곡률로 거리를 쉽게 계산하고 거리를 따라 일정한 속도로 움직일 수 있습니다. 게다가, 그들은 좋아 보인다.

나는 원호와 직선 사이를 번갈아 가며 길을 가지고 놀기 시작했습니다. Will 의 접근 방식 과 비슷 하지만 원호의 반경은 다양합니다. 나는이 접근법에 매우 만족했지만 결국 아무것도하지 않았습니다. 이 데모를보십시오 (플래시). 왼쪽의 컨트롤은 스플라인 용이고 오른쪽의 컨트롤은 원호 용입니다 (슬라이더를 사용하여 길이를 제어하고 드래그 핸들을 사용하여 각도를 제어). 도로의 끝을 드래그하여 원호 모양이 얼마나 멋진 지 확인하여 매우 단단한 곡선을 만듭니다.

또는 Iain에서 제안한 그리드로 재생하려는 경우 정사각형 대신 정사각형으로 그리기를 시도하십시오. 여기 데모 (자바 애플릿)가 있습니다.



7

적절한 은자 스플라인을 사용하면 구석이 좁아지고 기차처럼 보이지 않을 수 있습니다.

은자 스플라인 사용

관절에서 원을 연결하는 직선으로 경로를 처리하면 훨씬 더 즐거운 결과를 얻었습니다.

여기에 이미지 설명을 입력하십시오

트릭은 인접한 조인트 원 의 내부 및 외부 탄젠트 를 계산하고 각 조인트의 권선을 처리하여 오른쪽을 통과시키는 것입니다.

그리고 트랙 레이아웃 로직에서 경로 자체 교차를 피하거나 정션으로 전환하십시오 :)

이 방법을 사용하는 비디오는 다음과 같습니다. http://www.youtube.com/watch?v=PAVksn4btKU


6

Cornu 나선을 사용하여 사용자가 트랙을 만들도록 할 수 있습니다. 스플라인은 소프트웨어에서 곡선을 나타내는 사실상의 방법이기 때문에 온라인에 대한 다음과 같은 문헌을 찾을 수 있습니다. 그럼에도 불구하고, 그들은 실제 철도 선로가 어떻게 지나가는가입니다. Raph Levien은 대중화하기 위해 많은 작업을 수행 했습니다 .


2

각 정사각형이 하나 이상의 다른 정사각형에 연결할 수있는 그리드 기반 접근 방식을 시도 할 수 있습니다. 그런 다음 더 부드러운 곡선을 만들기 위해 여러 정사각형을 덮는 조각을 가질 수 있습니다. 기차 세트와 같은 기본 모듈 식.


1
그리드 기반 접근 방식과 비슷한 것을 시도했습니다. 기본적으로 트랙 조각을 만들었으므로 간단한 그리드보다 약간 더 자유 로워지는 방식으로 함께 클릭 할 수 있습니다. 매우 비슷한 개념이라고 생각합니다. 그것은 잘 작동했지만 빨 때마다 적절한 조각을 선택하여 트랙을 그립니다.
hokiecsgrad

2

나는 레일 트랙을 구현하기 위해 다양한 기술을 시도했으며, 원과 직선의 섹션이 가장보기 좋은 결과를 제공하고 기차를 달리는 가장 쉬운 수학을 발견했습니다.

불행히도, 제어점의 작은 움직임이 트랙을 완전히 다른 방향으로 보내므로 트랙이 꽤 복잡하고 직관적이지 않습니다.

더 많은 제어점을 추가함에 따라 트랙 배치 방법을 결정하는 수학은 매우 까다로워집니다.

http://www.dailymotion.com/video/xgl2kp_openrailz-tech-demo-3_videogames 에 대한 간단한 데모가 있습니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.