Filter
Exclude
Time range
-
Near
most beautiful. epitrochoid, hypotrochoids, cycloids, animation. Wolfram Language code. math, geometry. Clear[hypotrochoidAnimate] hypotrochoidAnimate::usage = " hypotrochoidAnimate[{a,b,h}] generates a list of graphics that trace out a hypotrochoid by rolling \ a circle inside another. a is the radius of the fixed circle. b is the radius of the rolling circle. a > b. h is the distance from the tracing point to the center of the rolling \ circle. hypotrochoidAnimate[{a,b,h}, {tMin, tMax}] start at tMin, stop at tMax. {tMin, tMax} control the number of rotations. hypotrochoidAnimate[{a,b,h}, {tMin, tMax, tStep}] using tStep. hypotrochoidAnimate[ {1, 1/4, 1/4}, {0, 2 Pi, 2 Pi/10} ] If not specified, an internal algorithm will figure out the number of \ rotations so that the curve is closed. tStep control the number of frames indirectly. 0 <= tMin <= tMax < Infinity. Options: NumberOfFrames-> Automatic LastFrameOnly -> False example: ListAnimate @ hypotrochoidAnimate[ {1, 1/4, 1/4} ] ListAnimate @ hypotrochoidAnimate[ {1, 1/4, 1/4}, {0, Pi, 0.2 } ] hypotrochoidAnimate[ {1, 1/4, 1/4}, LastFrameOnly -> True ] hypotrochoidAnimate[ {1, 1/4, 1/4}, {0, Pi}, LastFrameOnly -> True ] ListAnimate @ hypotrochoidAnimate[ {1, 3/4, 3/4}, NumberOfFrames -> \ 100 ] hypotrochoidAnimate[ {1, 2/5, 1}, LastFrameOnly -> True, \ NumberOfFrames -> Automatic] hypotrochoidAnimate[ {1, 1/3, 1/3}, LastFrameOnly -> True, \ NumberOfFrames -> 120] Created: 2026-03-01 Version: 2026-03-01 "; Options[hypotrochoidAnimate] = Join[{NumberOfFrames -> Automatic, LastFrameOnly -> False}, Options[Graphics]]; hypotrochoidAnimate[{a_, b_, h_}, tRange_List : Automatic, opts : OptionsPattern[]] := Block[{nOfFrames, tMin, tMax, tStep, xmargin, tRangeList, tracingPointF, pointListGP, staticGP, movingGP, lastFrameGP},(*todo.set the number of frames such that the tracing \ point traveled after tStep is constant like 0.3*) nOfFrames = If[OptionValue@NumberOfFrames === Automatic, Min[400, ((Numerator@Rationalize[b/a, 0]) (15*4))], OptionValue@NumberOfFrames]; {tMin, tMax, tStep} = Which[tRange === Automatic, {0, N@Numerator@Rationalize[N@b/a, 0] 2 Pi, N@(tMax - tMin)/(nOfFrames - 1)}, Length@tRange === 3, N@tRange, True, N@{First@tRange, Last@tRange, (tMax - tMin)/(nOfFrames - 1)}]; xmargin = (a Max[0, h - b]) 1.05; tRangeList = N@Range[tMin, tMax, tStep]; tracingPointF = Compile[{x}, {(a - b) Cos[x] h Cos[-(a - b)/b x], (a - b) Sin[x] h Sin[-(a - b)/b x]}]; pointListGP = Map[Function[Point@tracingPointF@#], tRangeList]; staticGP = {Hue[.65, 1, .7], Thickness[.007], Circle[{0, 0}, a]}; movingGP = Function[ Block[{xcenter = (a - b) {Cos[tMin (# - 1) tStep], Sin[tMin (# - 1) tStep]} // N}, {Hue[.17], Disk[xcenter, b], Hue[.65, 1, .7], Thickness[.008], Circle[xcenter, b], Line[{xcenter, pointListGP[[#, 1]]}], Hue[0], PointSize[.02], pointListGP[[#]]}]]; Table[Graphics[{staticGP, movingGP@nn, Hue[0], Take[pointListGP, nn]}, FilterRules[{opts}, Options[Graphics]], AspectRatio -> Automatic, Axes -> True, PlotRange -> ({{-1, 1}, {-1, 1}} xmargin)], {nn, Evaluate@If[OptionValue@LastFrameOnly, Length@tRangeList, 1], Length@tRangeList}]] (*s------------------------------*) ListAnimate@hypotrochoidAnimate[{1, 1/4, 1/4}] ListAnimate@hypotrochoidAnimate[{1, 1/4, 1/4}, {0, Pi, 0.2}] hypotrochoidAnimate[{1, 1/4, 1/4}, LastFrameOnly -> True] hypotrochoidAnimate[{1, 1/4, 1/4}, {0, Pi}, LastFrameOnly -> True] ListAnimate@hypotrochoidAnimate[{1, 3/4, 3/4}, NumberOfFrames -> 100] hypotrochoidAnimate[{1, 2/5, 1}, LastFrameOnly -> True, NumberOfFrames -> Automatic] hypotrochoidAnimate[{1, 1/3, 1/3}, LastFrameOnly -> True, NumberOfFrames -> 120]
1
3
23
1,620
๐Ÿ”ต ๐”๐ฌ๐ž ๐Ž๐ฉ๐ญ๐ข๐จ๐ง๐ฌ ๐๐š๐ญ๐ญ๐ž๐ซ๐ง Still accessing config values with Configuration["Section:Key"] everywhere? Thatโ€™s a maintenance nightmare waiting to happen. ๐Ÿ“Œ The Options Pattern in .NET is a design approach that allows you to bind sections of your configuration (likeย appsettings.json, secrets, etc) to strongly-typed classes. Instead of reading raw values from IConfiguration directly throughout your code, you encapsulate configuration data into well-defined objects that can be injected via dependency injection. โœ… Use services.Configure<T>() and inject IOptions<T> to make your configuration reliable and structured. ๐Ÿ’ฌ Are you still reading settings as raw strings? โค๏ธ Like if you prefer clean, type-safe config! ๐Ÿ” Share to help others stop the hardcoding madness! #DotNet #CSharp #OptionsPattern #CleanCode #CodingTips #SoftwareDevelopment
1
3
27
๐Ÿ”ต ๐Ÿ– ๐›๐ฅ๐จ๐ ๐ฌ ๐ญ๐ก๐š๐ญ ๐ข๐ฆ๐ฉ๐ซ๐จ๐ฏ๐ž๐ ๐ฆ๐ฒ .๐๐„๐“ ๐œ๐จ๐๐ž โ€” ๐Ÿ๐จ๐ซ ๐ซ๐ž๐š๐ฅ If you're a backend or full-stack dev working with .NET, these articles were written with you in mind. Over the past few months, Iโ€™ve shared 8 blog posts packed with lessons from real-world projects, each one packed with clean code tips, architectural insights, and code samples that you can use right away. 1 - How to Generate Fake Data for Automated Tests Using Bogus (pedrocons.com/how-to-generatโ€ฆ) 2 - Central Package Management in .NET: A Must-Have for Scalable Projects (pedrocons.com/central-packagโ€ฆ) 3 - What Is Vertical Slice Architecture and Why Should You Care? (pedrocons.com/what-is-verticโ€ฆ) 4 - Global Exception Handling in .NET โ€“ Why You Canโ€™t Ignore It (pedrocons.com/global-exceptiโ€ฆ) 5 - Why Most Developers Get Minimal API Structure Wrong (And How to Fix It) (pedrocons.com/why-most-develโ€ฆ) 6 - Why .NET Developers Are Saying Goodbye to Controllers and Embracing Minimal APIs โ€“ And You Should Too (pedrocons.com/why-net-develoโ€ฆ) 7 - What Is the Options Pattern in .NET and Why Should You Use It? (pedrocons.com/what-is-the-opโ€ฆ) 8 - How to Boost Your .NET Apps with Fluent Validation (Step-by-Step Tutorial) (pedrocons.com/how-to-boost-yโ€ฆ) No fluff. Just sharp solutions to common problems. ๐Ÿ’ฌ Which topic should I dive deeper into with code walkthroughs? โค๏ธ Like if one of these saved you some time ๐Ÿ” Repost to help others write better .NET apps #DotNet #CSharp #CleanCode #MinimalApi #AspNetCore #Testing #Architecture #VerticalSlice #FluentValidation #OptionsPattern #SoftwareEngineering
1
2
6
765
๐Ÿ”ฅHow do you load configurations from appsettings.json in your #aspnetcore applications? Here is the #optionspattern for you. Follow this thread along to learn more. #dotnet #developer #backend #webapi #settings
5
32
155
14,969
Our AppSec Engineer, @dkotik, will be presenting Why the Options Pattern is Great for Security tomorrow. Be sure to register: hubs.ly/H0_5HBk0 #SecurityJourney #OptionsPattern #AppSec #0xcon #Discord #YouTube

1
Have you marked your calendars for the @SecSeaConf to join in on @dkotik's presentation, "Why the Options Pattern is Great for Security"? Here's your last chance to reserve your spot! hubs.ly/H0XpkKg0 #OptionsPattern #SecureCode #AppSec #CyberSecurity #Cyber

1
Our very own Application Security Engineer, @dkotik, will present "Why the Options Pattern is Great for Security" at @NoNameConOrg! Be sure to join the presentation on September 3rd at 12pm UTC: hubs.ly/H0WdFQt0 #SecurityJourney #NoNameCon #OptionsPattern

2
2
Check out Security Journey's Application Security Engineer @dkotik's presentation "Why the Options Pattern is Great for Security" @owasp: hubs.ly/H0TqX5_0 #SecurityJourney #OptionsPattern #CyberSecurity #Tech #OWASP

1
2
In our new article, weโ€™re going to cover another way of reading configuration data in #aspnetcore โ€“ the Options Pattern. It helps us group related configuration settings, and it provides strongly typed access to them: code-maze.com/aspnet-configuโ€ฆ #configuration #optionspattern

5
Yeah, OptionsPattern[] is the only sane way to do things. I wish more languages had keyword args like python. At the same time I also wish more langs had pattern-matching like Haskell and Mma
3
Can you answer this? About the OptionsPattern[] approach of inheriting Options mathematica.stackexchange.coโ€ฆ #mathematica

1