This question stems from an attempt to solve the following question: How to calculate specific area on surface of sphere?
First, I parametrize a circular loop:
kxx[kx0_, r_, t_] = kx0 + r Cos[t];
kyy[kx0_, r_, t_] = ky0 + r Sin[t];
Then I plug each expression into three functions hx, hy and hz to map them to some space (code at the end of this question). This essentially takes my 2D curve into 3D space. I now want to calculate the area inside this curve, and my best bet was to define it as a ParametricRegion[] and use Area[].
For some values of kx0, ky0 and r, the ParametricRegion output looks like this:
ParametricRegion[{{cos(1/2 (Sqrt[3] (0.1 cos(t)+4.6)-3 (0.1 sin(t)+1.9)))+cos(1/2 (3 (0.1 sin(t)+1.9)+Sqrt[3] (0.1 cos(t)+4.6)))+1,
2 sin(3/2 (0.1 sin(t)+1.9)) cos(1/2 Sqrt[3] (0.1 cos(t)+4.6)),
-4 (cos(1/2 Sqrt[3] (0.1 cos(t)+4.6))-cos(3/2 (0.1 sin(t)+1.9))) sin(1/2 Sqrt[3] (0.1 cos(t)+4.6))},
0<=t<=2 \[Pi]},{t}]
However, when I try to calculate its area, I always get 0.
Area[ParametricRegion[{hx[t],hy[t],hz[t]}, {{t, 0, 2 Pi}}]]
When I tried to plot this region, I get an error:
RegionPlot3D[ParametricRegion[{hx[t],hy[t],hz[t]}, {{t, 0, 2 Pi}}]]
Errors: "ParametricRegion... cannot be automatically discretized", "ParametricRegion... is not a valid region to plot." and "RegionPlot3D: Range specification Lighting->Automatic is not of the form {x, xmin, xmax}."
I read about potential reasons my region isn't valid in RegionPlot - not a valid region to plot and Trouble plotting an ImplicitRegion, but I haven't solved my issue yet.
Any advice on how I could solve this issue? I've attempted using Region[] before but failed.
Full code:
kxx[kx0_, r_, t_] = kx0 + r Cos[t];
kyy[kx0_, r_, t_] = ky0 + r Sin[t];
M = 0; phi = Pi/2;
b1 = {{-Sqrt[3]/2}, {3/2}};
b2 = {{-Sqrt[3]/2}, {-3/2}};
b3 = {{Sqrt[3]}, {0}};
hx[kx_, ky_] := 1 + Cos[{kx, ky}.b1] + Cos[{kx, ky}.b2]
hy[kx_, ky_] := Sin[{kx, ky}.b1] - Sin[{kx, ky}.b2]
hz[kx_, ky_] :=
M - 2 Sin[
phi] (Sin[{kx, ky}.b1] + Sin[{kx, ky}.b2] + Sin[{kx, ky}.b3])
H[kx_, ky_] =
Flatten[{hx[kx, ky], hy[kx, ky], hz[kx, ky]}, 1] // Simplify;
HLoop[kx0_, ky0_, r_, t_] = H[kxx[kx0, r, t], kyy[kx0, r, t]];
R = ParametricRegion[HLoop[kx0, ky0, r, t], {{t, 0, 2 Pi}}]
RegionPlot3D[R, {t, 0, 2 Pi}]
kx0,ky0
$\endgroup$