Select to view content in your preferred language

Creating Arches in CE question

818
1
08-25-2021 05:43 AM
by Anonymous User
Not applicable

I've been messing around with equations to create bridge arches but I cannot figure out why one equation will not work in CityEngine.

I've been using Desmos graphing to figure out my equations and you'll see here that I have 3 graphs which I have designed to be similar lengths and heights:

1. upward parabola
2. downward parabola
3. sine wave

I can successfully get the two parabolic functions to work under an extrude but I cannot get the sine wave to work under the extrude.

``````@Hidden
attr segment = 1
@Hidden
attr BridgeSpanL = geometry.du(0,unitSpace)
const Pi = 3.14159
const Bx = Pi/BridgeSpanL

@StartRule
BridgeSpan-->
set(BridgeSpanL, geometry.du(0,unitSpace))
split(u,unitSpace,0){~segment: BridgeArch(BridgeSpanL,split.index)}*

BridgeArch(BridgeSpanL,n)-->
extrude(
//-(pow(split.index,2)/BridgeSpanL)+split.index  //Parabolic Curve for typical Arch Bridge
//pow((split.index-(BridgeSpanL/2)),2)/BridgeSpanL  // Inverse Parabolic Curve
//(BridgeSpanL/4)*(sin((Pi/BridgeSpanL)*split.index))
(BridgeSpanL/4)*sin(Bx*split.index)
)``````

Although I can get a sine or cosine wave to work, I cannot get the period/frequency of the sine wave to behave as I expect under the function.  If I could, I think I could create some more interesting arch patterns.

Is it my code, my math (probably), or is this a bug or a limitation of the extrude?

Parabolic Arch

Above:  Parabolic equation working.

Flat Sine Wave

Above:  Sine wave equation not working.

Above:  Sine wave sort of working but without the a frequency parameter (Bπ or 1/Bπ)

Also, does Pi π have a built-in for CityEngine?   I feel like it should.