그래서해야 할 일은 Ising 모델 ('+1'또는 '-1'을 가리키는 스핀의 격자)과 비슷한 것입니다. 그래서를 수행하는 격자를위한 코드를 작성했습니다 : 이것은 내가 무엇을하고 있었는지에 대한 괜찮다고C++을 사용하여 회전 할 수있는 벡터 배열을 작성하는 방법
const int Lx = 5, Ly = 5;
const int L = Lx*Ly;
inline void vector_lattice(){
for (int i = 0; i < L+1; i++){
s[i]=0.0;
}
for (int i = 0; i < L; i++){
s[i] =1;
}
}
,하지만 지금은 벡터의 실제 격자를 갖고 싶어 X2에서 X1, Y1 및을 stoping에 진을 시작 , y2. Ising 모델에서 +1은 x1, y1에서 시작하여 x1, y2에서 멈 춥니 다. 하지만 궁극적으로 그 벡터의 'sin (theta)'또는 이와 비슷한 것을 회전시키고 싶습니다. 따라서 격자의 모든 벡터 방향을 나타내는 화살표를 그릴 때 x1, y1, x2 및 y2와 같은 위치를 가져야합니다. 25x5 격자의 경우 25 개의 화살표.
궁극적으로 내가 원하는 것은 아래 그림과 같은 것을 표시하고,이 코드를 사용하면이 벡터를 90도 회전 할 수 있습니다.
나는 이것을 달성하기 위해 무엇을 바꾸어야하는지 알고 있습니다.
질문을 편집하여 질문하는 내용을보다 구체적으로 지정할 수 있습니까? 나는 "모든 자세가 필요하다"는 것이 무엇인지 모르겠습니다. –
완료, 이제 더 명확 해지기를 바랍니다! – Mac
아직도 명확하지는 않지만, 올바르게 이해한다면, 격자 사이트를'std :: vector, std :: pair >'에 저장할 수 있습니다. '(x, y)'좌표와 두 번째 쌍은이 지점에서 "회전"의 방향을 저장합니다. 그런 다음 달성하려는 목표에 대해이 두 번째 쌍에 모든 회전을 적용 할 수 있습니다. –
ArchbishopOfBanterbury