Deens ovaal

Kor

Post veel
10 jun 2012
1.464
827
Bézier curves (en afgeleide splines) geven inderdaad mooi vloeiende overgangen. Je kunt ze ook in SketchUp gebruiken, daar zit de methode niet standaard in maar is beschikbaar als plug-in / extensie.

Voor wie zich wat in deze materie wil verdiepen en er een goed uurtje voor over heeft, is op YouTube The Continuity of Splines door Freya Holmér een absolute aanrader.
 

jorisvh

Post veel
ontwerpen waarbij de overgang tussen verschillende segmenten van een oppervlak meer continu zijn geven in het algemeen inderdaad een betere kwaliteitsperceptie.
bvb, met dank aan http://bentonian.com/Lectures/FGraphics1920/4. Beziers, B-Splines and NURBS.pdf:

1700319546765.png

wiskundig gezien wil je minstens G1-continuïteit hebben in de overgang tussen 2 segmenten.
dat betekent dat de 2 segmenten door hetzelfde punt gaan + dezelfde richting hebben in dat punt. als je met cirkelsegmenten en rechte stukken werkt krijg je dat prima voor mekaar met houtje touwtje methodes.
bvb wil je een cirkelsegment met R=3000mm koppelen aan een cirkelsegment met R=2000mm, dmv een segment met R=250mm, dan teken je vanuit het middelpunt van de cirkel R=3000 een 2de cirkel met R2750 (3000-250) en vanuit het middelpunt van de cirkel met R=2000 een 2de cirkel met R1750 (2000-250).
waar de 2 kleinere cirkels snijden ligt het middelpunt voor de R250 cirkel.
de lijn door de middelpunten van de R3000 en de R250 snijdt beide cirkels waar ze mekaar raken en loodrecht daarop ligt de gemeenschappelijke raaklijn.

met Beziers, B-splines, NURBS, … kan je hogere continuïteit verwezenlijken (bvb dat de kromming gelijk is aan beide kanten) maar die lijken mij in de praktijk niet zo toepasbaar in de houtbewerking tenzij je een CNC hebt.
 
  • Leuk
Waarderingen: jaap

Guido76

Actieve deelnemer
23 okt 2018
279
52
Zeewolde
Bézier curves (en afgeleide splines) geven inderdaad mooi vloeiende overgangen. Je kunt ze ook in SketchUp gebruiken, daar zit de methode niet standaard in maar is beschikbaar als plug-in / extensie.

Voor wie zich wat in deze materie wil verdiepen en er een goed uurtje voor over heeft, is op YouTube The Continuity of Splines door Freya Holmér een absolute aanrader.
zeer interessant filmpje. Ben halverwege. Maar het gaat mij een beetje boven de pet hoe ik dit in een mal kan toepassen uit de hand.

Maar als ik het een beetje begrijp is een ovalen tafel ook zo'n Bezier spline, maar de deens ovalen tafel waarbij we voor de lange zijde een vaste straal gebruiken dus eigenlijk niet echt.

Na de openhout dag ging ik nog op bezoek bij CILO, een dure design meubel winkel. Mag daar graag rondkijken en ideeën opdoen.

Er was 1 tafel met naar mijn idee een foutje erin en ik zag het bijna direct. Ik vindt het niet mooi maar wellicht is het bewust wel gedaan.

De overgang is niet helemaal conform bovenstaande Bezier materie. Het is subtiel aanwezig, maar als je er op let en er weet van hebt zou ik mij daar toch aan storen.

tafel cilo niet perfect.JPG
 

Bert Vanderveen

Oud hout
1 sep 2015
3.580
1.223
Enschede, Twente
Inderdaad. Er zit een recht stukje net voorbij de bocht. In Beziertermen: een steunpunt teveel. Dat zal te maken hebben met opties voor verschillende breedtes, lijkt me (volgens mijn logica, dus).
 

jorisvh

Post veel
Maar als ik het een beetje begrijp is een ovalen tafel ook zo'n Bezier spline, maar de deens ovalen tafel waarbij we voor de lange zijde een vaste straal gebruiken dus eigenlijk niet echt.
klopt.
C1-continuïteit in de overgang tussen 2 segmenten betekent: zelfde raaklijn en zelfde kromming.
1700399248250.jpeg

de definitie van een cirkel is juist dat de kromming constant is. straal veranderen betekent kromming veranderen.
je kan eventueel wel middelpunt spiegelen zonder de straal te veranderen (van hol naar bol gaan) maar voor een tafel is dat niet erg toepasbaar.

ik vermoed dat de methode met 4 spijkers en een touw (zie vb Musicus) wel een C1-continue curve oplevert maar het bewijs daarvoor kan ik niet zo uit de mouw schudden.
daar koppel je ovaal segmenten aan mekaar.
ik heb dat ondertussen eens in Fusion getekend, zal het volgende week eens terug opzoeken en delen.
 
  • Leuk
Waarderingen: gandel69

Kor

Post veel
10 jun 2012
1.464
827
Dit is een forum van en voor doeners, doorgaans praktische denkers. Dus volledig logisch dat hier de aandacht voor Bezier- en aanverwante curves vooral richting praktische benutting gaat. De wens om een bepaalde vorm te maken wordt met wat wiskundig vernuft omgezet in een opdracht waarmee een machine aan het werk kan worden gezet.

Minstens zo fascinerend (voor de liefhebber) is het proces de andere kant op. Onze hersenen lijken wiskundige patronen te gebruiken om wat we waarnemen te toetsen aan ons gevoel voor schoonheid. Op zich niet verrassend, we herkennen immers allemaal mooie cirkels, symmetrie in al zijn varianten, repeterende patronen, gulden snede en de "rule of thirds".
Blijkbaar werken we onbewust ook met complexere functies als derde- en vierdegraads Bézier-curves wanneer we beoordelen of een vorm esthetisch klopt. Zie het voorbeeld van @Guido76 hierboven.
 
  • Leuk
Waarderingen: jaap en jorisvh

Bennyvanwijhe

Nieuw lid
21 apr 2026
1
0
-s'Gravenpolder
het eten smaakt niet beter als de tafel voldoet aan een wiskundige formule :).

heb het "plaatje van de meubelmaker" even in Fusion360 gestoken en blijkt dat de maten alles 100% bepalen. de stralen worden:
  • 4.803mm lange zijde
  • 1.663mm korte zijde
  • 125mm afrondingen
Bekijk bijlage 137379

de maten zonder () zijn gekozen, de maten met () volgen daaruit.

een cirkel met straal van 4m80 frezen met een freespasser is nog een uitdaging maar moet lukken (als je atelier groot genoeg is tenminste).

de afrondingsstralen van de tafel van Ernst binnen zijn te klein voor een tafel van 2200x1000. de ronding is te groot waardoor er aan de kopse kant onvoldoende zitbreedte overblijft.
Bekijk bijlage 137382
Kan iemand voor mij hier ook zo een tekening maken zoals de bovenste met deens ovaal 2000x1000?
 

Bert Vanderveen

Oud hout
1 sep 2015
3.580
1.223
Enschede, Twente
Kan iemand voor mij hier ook zo een tekening maken zoals de bovenste met deens ovaal 2000x1000?
Ik heb het aan ChatGPT gevraagd (Danish Oval) en de uitkomst is niet wat ik ervan verwacht had…

ChatsDanishOval.png

Dus even doorgedacht en het begrip 'Squircle' gevonden. Met die input krijg ik:

Squircle.png

Dat lijkt er dus niet op. AI, my ass…

Maar niet opgeven, want een 'betere' prompt zou wel eens een beter resultaat kunnen opleveren. En (prompt aan het eind…), dit dus:

BetereVorm.png

De prompt was
Please make a drawing of a shape with outer measurements 2000 bij 1000 millimeters, with all four sides curved.

Hoop dat dit helpt. : )
 
  • Leuk
Waarderingen: The Boktor en Athanor

keesfrees

Actieve deelnemer
1 mei 2021
338
71
Grönnen
Ik heb het aan ChatGPT gevraagd (Danish Oval) en de uitkomst is niet wat ik ervan verwacht had…

Bekijk bijlage 167267
Dat vind ik een "mooi" voorbeeld van rondzingende informatie.
Het staat al vaak verkeerd op het internet en op deze manier komen we daar niet meer van af.
Maar eigenlijk was/is dat met boeken ook al zo, een onderzoek middels literatuur studie geeft ook dit verschijnsel.
 

kees poortman

Actieve deelnemer
21 sep 2015
244
180
Oosterbeek
Het helpt al fantastisch om te snappen hoe je de zoektermen inzet. Zelf zou ik de vorm helemaal op gevoel willen maken, maar dit is uiteindelijk best een heel mooie uitkomst
 

jorisvh

Post veel
er bestaat - bij mijn weten - geen eenduidige wiskundige definitie van een Deens ovaal. alle voorbeelden van dingen die Deens ovaal genoemd worden, zijn een “rechthoek” waarvan de 4 zijdes een kromming hebben en waarvan de “hoeken” afgerond zijn. het heeft dus maw geen enkele eigenschap meer van een rechthoek (behalve dat er nog steeds 2 onderling loodrechte symmetrie-assen zijn).

hoe je die tekent, zou ik vooral laten afhangen van hoe je die wil gaan maken.

als je een CNC ter beschikking hebt, kan je de formule van een superellips gebruiken.

de truuk met 4 nagels en een touw geeft mooie vloeiende vormen. daarmee kan je de vorm tekenen, maar niet maken. je moet dan eerst een mal (of 1/4 mal) tekenen en met een wipzaag/dikkepeerzaag uitzagen en bijschuren.
wiskundig gezien zijn dit segmenten van ellipsen waarbij telkens een andere set van 2 van de 4 nagels de brandpunten zijn. als je met de klok mee tekent eerst links- en rechtsboven, dan linksboven en rechts onder, dan rechts boven en onder, …
ik heb dit ooit in fusion360 gestoken zodat ik de link kon leggen tussen de posities van de nagels en lengte van het touw en de resulterende vorm. zal bij gelegenheid eens zien of ik het terugvind.

als je met eenvoudige middelen wil maken kom je bij cirkelsegmenten die je met een freespasser kan maken. hoewel, voor de lange zijdes kom je voor een eettafel al snel bij radius 4m dus die freespasser is nog wel een uitdaging.

ik heb onlangs voor een klant een “Deens trapezium” eettafel gemaakt en sapeli mahonie en marmer.
1776838881367.jpeg
(ja die mat is spuuglelijk en past niet bij de rest 🙄)
de vorm bestaat uit cirkelsegmenten.
voor het natuursteen blad heb ik een DXF naar de steenkapper gestuurd en die heeft het met de waterjet uitgesneden.
er zit een 25 mm multiplex onder die aan alle kanten 15cm kleiner is. die heb ik met mallen gemaakt die met een freespasser gemaakt zijn.
1776839863188.jpeg
 

knotwilg

Post veel
17 apr 2011
2.287
1.117
Enschede
ingoogni.nl
voor wie python gebruikt. Het vraagt om a = lengte, b = breedte, n = factor (2.5) en res = het aantal punten. Dan print het het aantal punten x, y en schrijft een simpel svg bestand.
EDIT: geef de maten in mm, anders wordt het plaatje wel heel zielig.

Code:
import math

# voor Deense ellipse n = 2.5
# https://piethein.com/superellipse/

# a: lengte
# b: breedte
# n: factor
# res: aantal punten

def superellipse_points(a, b, n, res):
    pts = []
    for i in range(res):
        t = 2 * math.pi * i / res
        x = a * math.copysign(abs(math.cos(t)) ** (2.0 / n), math.cos(t))
        y = b * math.copysign(abs(math.sin(t)) ** (2.0 / n), math.sin(t))
        pts.append((x, y))
    return pts

def save_svg(points, filename, padding=10):
    xs = [p[0] for p in points]
    ys = [p[1] for p in points]
    min_x, max_x = min(xs), max(xs)
    min_y, max_y = min(ys), max(ys)

    width  = max_x - min_x + 2 * padding
    height = max_y - min_y + 2 * padding

    # Translate points so they fit in the viewport
    def tx(x): return x - min_x + padding
    def ty(y): return y - min_y + padding

    coords = " ".join(f"{tx(x):.6f},{ty(y):.6f}" for x, y in points)

    svg = (
        f'<svg xmlns="http://www.w3.org/2000/svg" '
        f'width="{width:.4f}" height="{height:.4f}" '
        f'viewBox="0 0 {width:.4f} {height:.4f}">\n'
        f'  <polygon points="{coords}" '
        f'fill="none" stroke="black" stroke-width="1"/>\n'
        f'</svg>\n'
    )

    with open(filename, "w") as f:
        f.write(svg)
    print(f"SVG saved to {filename}")

if __name__ == "__main__":
    a   = float(input("a: "))
    b   = float(input("b: "))
    n   = float(input("n: "))
    res = int(input("res: "))

    points = superellipse_points(a, b, n, res)
    for x, y in points:
        print(f"{x:.10f}, {y:.10f}")

    save_svg(points, "superellipse.svg")

    input('Press ENTER to exit')
 
Laatst bewerkt:
  • Leuk
Waarderingen: arjaano

Deze plek is voor toekomstige tekst. Door nu alvast deze kolom te activeren blijft de kolommen structuur ongewijzigd en de lezerservaring hetzelfde als er hier content geplaatst gaat worden.

Hier kan straks ook info geplaatst worden.