Skip to content

Commit 1aa775b

Browse files
committed
add constant summand for newton pool
1 parent f916be7 commit 1aa775b

File tree

4 files changed

+24
-1
lines changed

4 files changed

+24
-1
lines changed

src/components/pool/Pool.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ export interface PoolParams {
1313
max_its: number,
1414
rea: number,
1515
ima: number,
16+
rec: number,
17+
imc: number,
1618
}
1719
export default function Pool() {
1820
const defaultParams: PoolParams = {
@@ -26,6 +28,8 @@ export default function Pool() {
2628
roots: [0,4*Math.PI / 3, 2*Math.PI /3,0,1,0,1,1,1,1,1,1],
2729
rea: 1,
2830
ima: 0,
31+
rec: 0,
32+
imc: 0,
2933
}
3034
const [params, setParams] = useState(defaultParams)
3135

src/components/pool/PoolCanvas.tsx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,13 @@ function putSettingsUniforms(gl: WebGLRenderingContext, program: WebGLProgram, s
159159
}
160160
gl.uniform2f(aId, settings.rea, settings.ima)
161161

162+
const cId = gl.getUniformLocation(program, "point_c")
163+
if (!cId) {
164+
console.error("c not found")
165+
return;
166+
}
167+
gl.uniform2f(cId, settings.rec, settings.imc)
168+
162169
const resolutionId = gl.getUniformLocation(program, "resol")
163170
if (!resolutionId) {
164171
console.error("resolution not found")

src/components/pool/PoolSettings.tsx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,5 +39,16 @@ export default function PoolSettings(props: PoolSettingsProps) {
3939
settingsCopy.ima = n
4040
props.onChange(settingsCopy)
4141
}}/>
42+
<label>Re(c)</label>
43+
<Slider min={0} max={5} value={settingsCopy.rec} step={0.05} onChange={n => {
44+
settingsCopy.rec = n
45+
props.onChange(settingsCopy)
46+
}}/>
47+
48+
<label>Im(c)</label>
49+
<Slider min={0} max={5} value={settingsCopy.imc} step={0.05} onChange={n => {
50+
settingsCopy.imc = n
51+
props.onChange(settingsCopy)
52+
}}/>
4253
</form>
4354
}

src/logic/pool/Shader.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ uniform vec2 position;
1919
uniform vec3 colors[12];
2020
uniform int max_its;
2121
uniform vec2 point_a;
22+
uniform vec2 point_c;
2223
2324
const int MAX_ITS = 300;
2425
@@ -58,7 +59,7 @@ vec2 pos = ((gl_FragCoord.xy + position / escale) / resol.xy + vec2(-0.5)) * esc
5859
vec2 zi = pos;
5960
for (int i = 0; i < MAX_ITS; i++) {
6061
if (i == max_its) {break;}
61-
zi = zi - cmul(cdiv(cpow(zi, n) - vec2(100., 0.), float(n) * cpow(zi, n-1)), point_a) + point_a;
62+
zi = zi - cmul(cdiv(cpow(zi, n) - vec2(100., 0.), float(n) * cpow(zi, n-1)), point_a) + point_c;
6263
// zi = zi - cmul(cdiv(sin(zi) - vec2(1., 0.), cos(zi)), point_a);
6364
}
6465

0 commit comments

Comments
 (0)