g | x | w | all
Bytes Lang Time Link
180JavaScript Node.js250314T043551Zl4m2
141Python250313T155740ZMukundan
097Mathematica200213T180412ZRGS

JavaScript (Node.js), 180 bytes

A=>g=(B,k=0)=>new Set(A.flatMap((x,i)=>B.map((y,j)=>A[j]&&B[i]&&D(x,A[j])/D(B[i],y)))).size<3||B[k>>1]&&g(B.reverse(),++k,k&1&&B.push(B.shift()))
D=([a,b],[c,d])=>(c-a)**2+(d-b)**2

Try it online!

Each pair of distance in ratio

Python, 141 bytes

lambda a,b:max(h(a:=a[1:]+[i],max(d:=h(b))/max(h(a)))in[d,d[::-1]]for i in a)
h=lambda a,d=1:[d*((i-k)**2+(j-l)**2)for i,j in a for k,l in a]

Attempt This Online!

Port of @RGS's answer, modified to properly handle cases that require reflections or scenarios where one polygon is clockwise and the other is counterclockwise.

Python, 126 bytes

lambda a,b:max(h(a:=a[1:]+[i],max(d:=h(b))/max(h(a)))in[d,d[::-1]]for i in a)
h=lambda a,d=1:[d*abs(i-j)for i in a for j in a]

Attempt This Online!

Takes input as complex numbers, it fails the first testcase due to rounding errors.

Mathematica, 97 bytes (SBCS)

Or@@(Equal@@(a@u/#)&/@(a/@NestList[RotateLeft,v,Length@v]))
a@l_:=Norm[#〚1〛-#〚2〛]&/@l~Subsets~{2}

You can try it online!

The function a computes all the pairwise distances between any two vertices of the polygon.

The main function applies this to the first list and to every rotation of the second list, to try and find the corresponding vertices. The rotation of the second list is correct if all the corresponding distances have been scaled accordingly.

Thanks to @J42161217 for saving me some 3 bytes