@jjlmoya/utils-motor 1.3.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/package.json +1 -1
  2. package/src/category/index.ts +2 -1
  3. package/src/entries.ts +4 -1
  4. package/src/index.ts +5 -0
  5. package/src/tests/locale_completeness.test.ts +1 -1
  6. package/src/tests/tool_validation.test.ts +1 -1
  7. package/src/tool/motorcycleSkidMarkSpeedEstimator/bibliography.astro +6 -0
  8. package/src/tool/motorcycleSkidMarkSpeedEstimator/bibliography.ts +12 -0
  9. package/src/tool/motorcycleSkidMarkSpeedEstimator/component.astro +166 -0
  10. package/src/tool/motorcycleSkidMarkSpeedEstimator/controller.ts +207 -0
  11. package/src/tool/motorcycleSkidMarkSpeedEstimator/dom-views.ts +101 -0
  12. package/src/tool/motorcycleSkidMarkSpeedEstimator/entry.ts +30 -0
  13. package/src/tool/motorcycleSkidMarkSpeedEstimator/evaluator.ts +7 -0
  14. package/src/tool/motorcycleSkidMarkSpeedEstimator/i18n/de.ts +185 -0
  15. package/src/tool/motorcycleSkidMarkSpeedEstimator/i18n/en.ts +185 -0
  16. package/src/tool/motorcycleSkidMarkSpeedEstimator/i18n/es.ts +185 -0
  17. package/src/tool/motorcycleSkidMarkSpeedEstimator/i18n/fr.ts +185 -0
  18. package/src/tool/motorcycleSkidMarkSpeedEstimator/i18n/id.ts +185 -0
  19. package/src/tool/motorcycleSkidMarkSpeedEstimator/i18n/it.ts +185 -0
  20. package/src/tool/motorcycleSkidMarkSpeedEstimator/i18n/ja.ts +201 -0
  21. package/src/tool/motorcycleSkidMarkSpeedEstimator/i18n/ko.ts +201 -0
  22. package/src/tool/motorcycleSkidMarkSpeedEstimator/i18n/nl.ts +185 -0
  23. package/src/tool/motorcycleSkidMarkSpeedEstimator/i18n/pl.ts +185 -0
  24. package/src/tool/motorcycleSkidMarkSpeedEstimator/i18n/pt.ts +185 -0
  25. package/src/tool/motorcycleSkidMarkSpeedEstimator/i18n/ru.ts +185 -0
  26. package/src/tool/motorcycleSkidMarkSpeedEstimator/i18n/sv.ts +185 -0
  27. package/src/tool/motorcycleSkidMarkSpeedEstimator/i18n/tr.ts +185 -0
  28. package/src/tool/motorcycleSkidMarkSpeedEstimator/i18n/zh.ts +201 -0
  29. package/src/tool/motorcycleSkidMarkSpeedEstimator/index.ts +10 -0
  30. package/src/tool/motorcycleSkidMarkSpeedEstimator/logic.test.ts +229 -0
  31. package/src/tool/motorcycleSkidMarkSpeedEstimator/logic.ts +179 -0
  32. package/src/tool/motorcycleSkidMarkSpeedEstimator/motorcycle-skid-mark-speed-estimator.css +523 -0
  33. package/src/tool/motorcycleSkidMarkSpeedEstimator/seo.astro +15 -0
  34. package/src/tool/motorcycleSkidMarkSpeedEstimator/storage.ts +49 -0
  35. package/src/tool/motorcycleSkidMarkSpeedEstimator/ui.ts +46 -0
  36. package/src/tools.ts +2 -1
@@ -0,0 +1,185 @@
1
+ import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
2
+ import type { SEOSection } from '@jjlmoya/utils-shared';
3
+ import { bibliographyEntries } from '../bibliography';
4
+ import type { MotorcycleSkidMarkSpeedEstimatorLocaleContent } from '../entry';
5
+
6
+ const slug = 'motorrad-bremsspur-geschwindigkeitsrechner';
7
+ const title = 'Motorrad Bremsspur Geschwindigkeitsrechner';
8
+ const description =
9
+ 'Schätzen Sie die Motorradgeschwindigkeit anhand der Bremsspurlänge, Straßenreibung, Steigung und Bremsart. Ein lehrreiches Physikmodell zur Unfallanalyse.';
10
+
11
+ const faq = [
12
+ {
13
+ question: 'Welche Geschwindigkeit zeigt eine Bremsspur an?',
14
+ answer:
15
+ 'Eine blockierte Reifenbremsspur misst die Distanz zur Umwandlung von kinetischer Energie in Reibungswärme. Die physikalische Energiegleichung ermittelt die Mindestgeschwindigkeit zu Beginn der sichtbaren Spur und nicht die ursprüngliche Fahrgeschwindigkeit vor Betätigung der Bremse.',
16
+ },
17
+ {
18
+ question: 'Warum wird ein Geschwindigkeitsbereich angegeben?',
19
+ answer:
20
+ 'Reibwerte von Straßenbelägen unterliegen Schwankungen, und die Bremskraftverteilung zwischen Vorder- und Hinterrad variiert je nach Fahrer. Der Rechner ermittelt daher Unter-, Mittel- und Oberwerte für eine realistische Einschätzung der Messunsicherheit.',
21
+ },
22
+ {
23
+ question: 'Ist das Ergebnis als offizielles Unfallgutachten zulässig?',
24
+ answer:
25
+ 'Nein. Ein gerichtsfestes Gutachten erfordert Messungen mit einem Verzögerungsschlitten vor Ort, Spuridentifizierung, ABS-Verhaltensanalysen und Sachverständige. Diese Anwendung dient ausschließlich als physikalisches Lernmodell.',
26
+ },
27
+ {
28
+ question: 'Wie unterscheidet sich dies von einem Bremswegrechner?',
29
+ answer:
30
+ 'Ein klassischer Bremswegrechner geht von einer bekannten Geschwindigkeit aus und berechnet den Anhalteweg. Dieses Werkzeug rechnet umgekehrt von einer gemessenen Reifenspur auf die Ausgangsgeschwindigkeit zurück.',
31
+ },
32
+ ];
33
+
34
+ const howTo = [
35
+ { name: 'Spur messen', text: 'Messen Sie die sichtbare Blockierspur des Reifenabriebs präzise in Metern oder Fuß.' },
36
+ { name: 'Fahrbahn wählen', text: 'Wählen Sie den entsprechenden Straßenbelag oder geben Sie einen gemessenen Reibwert manuell ein.' },
37
+ { name: 'Neigung und Bremse einstellen', text: 'Geben Sie die Steigung der Straße an und wählen Sie, welche Räder blockiert haben.' },
38
+ { name: 'Ergebnis ablesen', text: 'Nutzen Sie den Mittelwert als Richtwert und beachten Sie die angezeigte Schwankungsbreite.' },
39
+ ];
40
+
41
+ const seo: SEOSection[] = [
42
+ { type: 'title', level: 2, text: 'Aus einer Reifenabriebspur die Geschwindigkeit berechnen' },
43
+ {
44
+ type: 'paragraph',
45
+ html: 'Ein Motorrad hinterlässt bei einer Gefahrenbremsung häufig eine deutliche Spur des Hinterrades, eine schwächere Linie des Vorderrades oder eine unterbrochene ABS-Spur. Gemessen wird ausschließlich der Bereich mit vollständig blockiertem Reifen, nicht jedoch das spätere Rutschen des Motorrads auf der Verkleidung nach einem Sturz.',
46
+ },
47
+ { type: 'title', level: 3, text: 'Physikalische Grundlagen der Geschwindigkeitsbestimmung' },
48
+ {
49
+ type: 'paragraph',
50
+ html: 'Das zugrundeliegende Modell nutzt die Energiebilanz des Rutschvorgangs: Die Geschwindigkeit entspricht der Quadratwurzel aus dem zweifachen Produkt der Erdbeschleunigung, des Reibungsbeiwerts und der gemessenen Spurlänge. Die Steigung der Fahrbahn fließt als Vektorkomponente ein. Eine Steigung unterstützt die Bremsung, während ein Gefälle den Bremsweg verlängert.',
51
+ },
52
+ {
53
+ type: 'list',
54
+ items: [
55
+ 'Alle Längenangaben werden intern exakt in Meter umgerechnet.',
56
+ 'Integrierte Richtwerte für trockenen und nassen Asphalt, Beton, Schotter und Eis.',
57
+ 'Berücksichtigung der Achslastverlagerung bei reiner Vorder- oder Hinterradbremsung.',
58
+ 'Bei unbestimmter Bremsung wird die Spanne von der günstigsten bis zur ungünstigsten Annahme erweitert.',
59
+ ],
60
+ },
61
+ {
62
+ type: 'tip',
63
+ title: 'Nur den blockierten Reifenabschnitt messen',
64
+ html: 'Beginnen Sie die Messung am ersten sichtbaren Reifenabrieb und beenden Sie sie dort, wo das Rad wieder rollt oder der Aufprall stattfindet. Addieren Sie nicht die Rutschstrecke des Motorrads auf der Karosserie.',
65
+ },
66
+ { type: 'title', level: 3, text: 'Typische Reibbeiwerte im Straßenverkehr' },
67
+ {
68
+ type: 'table',
69
+ headers: ['Oberfläche', 'Mittlerer Reibbeiwert', 'Schwankungsbereich'],
70
+ rows: [
71
+ ['Trockener Asphalt', '0.70', '0.55 bis 0.85'],
72
+ ['Nasser Asphalt', '0.50', '0.35 bis 0.65'],
73
+ ['Trockener Beton', '0.75', '0.60 bis 0.90'],
74
+ ['Kies oder Schotter', '0.50', '0.35 bis 0.70'],
75
+ ['Erde oder Gras', '0.40', '0.25 bis 0.55'],
76
+ ['Eisfläche', '0.10', '0.05 bis 0.18'],
77
+ ],
78
+ },
79
+ {
80
+ type: 'paragraph',
81
+ html: 'Diese Werte dienen der Veranschaulichung des Reibungsverhaltens blockierter Gummireifen auf unterschiedlichen Untergründen. Eine messtechnische Bestimmung vor Ort ist Tabellenwerten stets vorzuziehen.',
82
+ },
83
+ { type: 'title', level: 3, text: 'Besonderheiten des Motorrad-Bremssystems' },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'Da Motorräder getrennte Bremsbetätigungen für Vorder- und Hinterrad besitzen, erlaubt eine reine Hinterradspur keinen Rückschluss auf die Ausnutzung des Gesamtpotenzials. Der Rechner ermöglicht daher die getrennte Auswertung der Achsen.',
87
+ },
88
+ {
89
+ type: 'diagnostic',
90
+ variant: 'warning',
91
+ title: 'Didaktisches Physikmodell',
92
+ badge: 'Lehrmodell',
93
+ html: 'ABS-Intervalle, Reifenverschleiß, Beladung und Aufprallenergie verändern die tatsächliche Ausgangsgeschwindigkeit. Bei extremem Gefälle stoppt das Modell die Berechnung aufgrund physikalischer Unmöglichkeit.',
94
+ },
95
+ ];
96
+
97
+ const schemas: WithContext<SoftwareApplication | FAQPage | HowTo>[] = [
98
+ {
99
+ '@context': 'https://schema.org',
100
+ '@type': 'SoftwareApplication',
101
+ name: title,
102
+ applicationCategory: 'UtilitiesApplication',
103
+ operatingSystem: 'Web',
104
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
105
+ description,
106
+ },
107
+ {
108
+ '@context': 'https://schema.org',
109
+ '@type': 'FAQPage',
110
+ mainEntity: faq.map((item) => ({
111
+ '@type': 'Question',
112
+ name: item.question,
113
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
114
+ })),
115
+ },
116
+ {
117
+ '@context': 'https://schema.org',
118
+ '@type': 'HowTo',
119
+ name: title,
120
+ step: howTo.map((step) => ({
121
+ '@type': 'HowToStep',
122
+ name: step.name,
123
+ text: step.text,
124
+ })),
125
+ },
126
+ ];
127
+
128
+ export const content: MotorcycleSkidMarkSpeedEstimatorLocaleContent = {
129
+ slug,
130
+ title,
131
+ description,
132
+ ui: {
133
+ unitMetric: 'Metrisch',
134
+ unitImperial: 'Imperial',
135
+ disclaimer: 'Nur für Bildungs- und Unterrichtszwecke.',
136
+ lengthLabel: 'Spurlänge',
137
+ lengthHint: 'Ziehen Sie die Bremsspur auf der Fahrbahn.',
138
+ gradeLabel: 'Steigung',
139
+ gradeHint: 'Bergan hilft beim Bremsen, bergab verlängert den Weg.',
140
+ surfaceLabel: 'Fahrbahnbelag',
141
+ frictionLabel: 'Reibwert',
142
+ frictionHint: 'Wählen Sie einen Belag oder geben Sie den Reibbeiwert an.',
143
+ brakeLabel: 'Blockiertes Rad',
144
+ brakeBoth: 'Beide Räder',
145
+ brakeFront: 'Vorderrad',
146
+ brakeRear: 'Hinterrad',
147
+ brakeUnknown: 'Unbekannt',
148
+ speedLabel: 'Geschwindigkeit auf der Spur',
149
+ rangeLabel: 'Toleranzbereich',
150
+ dragHint: 'Ziehen Sie die Spur auf der Fahrbahn.',
151
+ emptyMessage: 'Ziehen Sie die Spur zur Geschwindigkeitsberechnung.',
152
+ invalidMessage: 'Zu steiles Gefälle. Bremsung physikalisch nicht möglich.',
153
+ readyMessage: 'Geschwindigkeit berechnet.',
154
+ educationalBadge: 'Lehrmodell',
155
+ surfaceDryAsphalt: 'Trockener Asphalt',
156
+ surfaceWetAsphalt: 'Nasser Asphalt',
157
+ surfaceDryConcrete: 'Trockener Beton',
158
+ surfaceGravel: 'Kies',
159
+ surfaceGrass: 'Erde',
160
+ surfaceIce: 'Eis',
161
+ surfaceCustom: 'Manuell',
162
+ sensitivityLabel: 'Schätzbereich',
163
+ lowAssumption: 'Niedrig',
164
+ highAssumption: 'Hoch',
165
+ gradeUphill: 'Steigung',
166
+ gradeDownhill: 'Gefälle',
167
+ gradeLevel: 'Eben',
168
+ measureHint: 'Vor-Ort-Messungen ersetzen Richtwerttabellen.',
169
+ stencilUnitKmh: 'km/h',
170
+ stencilUnitMph: 'mph',
171
+ lengthUnitM: 'm',
172
+ lengthUnitFt: 'ft',
173
+ percentSuffix: '%',
174
+ dragLowLabel: 'Geringe Reibung',
175
+ dragMidLabel: 'Mittlere Reibung',
176
+ dragHighLabel: 'Hohe Reibung',
177
+ },
178
+ seo,
179
+ faqTitle: 'Häufige Fragen zur Bremsspurberechnung',
180
+ faq,
181
+ bibliographyTitle: 'Quellen',
182
+ bibliography: bibliographyEntries,
183
+ howTo,
184
+ schemas,
185
+ };
@@ -0,0 +1,185 @@
1
+ import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
2
+ import type { SEOSection } from '@jjlmoya/utils-shared';
3
+ import { bibliographyEntries } from '../bibliography';
4
+ import type { MotorcycleSkidMarkSpeedEstimatorLocaleContent } from '../entry';
5
+
6
+ const slug = 'motorcycle-skid-mark-speed-estimator';
7
+ const title = 'Motorcycle Skid Mark Speed Estimator';
8
+ const description =
9
+ 'Estimate a motorcycle speed range from skid mark length, surface friction, grade, and which brake left the mark. Educational only, not an accident reconstruction.';
10
+
11
+ const faq = [
12
+ {
13
+ question: 'What speed does a skid mark represent?',
14
+ answer:
15
+ 'A locked-wheel skid mark records the distance used to shed kinetic energy after the tire stops rotating. The energy equation gives a minimum speed at the start of that visible mark, not the travel speed before the rider first touched the brake.',
16
+ },
17
+ {
18
+ question: 'Why is the result a range instead of one number?',
19
+ answer:
20
+ 'Surface friction is uncertain, motorcycle braking is split between front and rear, and grade changes the effective drag. The estimator varies those assumptions and reports a low, mid, and high speed so you can see how sensitive the answer is.',
21
+ },
22
+ {
23
+ question: 'Can I use this number in a crash report or insurance claim?',
24
+ answer:
25
+ 'No. Scene evidence needs measured drag tests, mark identification, ABS behavior, yaw, impacts, and an investigator. This page is a physics lab for learning how length and friction move the estimate.',
26
+ },
27
+ {
28
+ question: 'How is this different from a braking distance calculator?',
29
+ answer:
30
+ 'A braking distance calculator starts from speed and asks how far you travel. This tool starts from a measured rubber mark and works backwards to a speed band. It does not add reaction distance.',
31
+ },
32
+ ];
33
+
34
+ const howTo = [
35
+ { name: 'Measure the mark', text: 'Record the visible locked-wheel mark length in metres or feet. If two marks exist, use a careful average rather than the longest smear of a sliding machine.' },
36
+ { name: 'Choose the surface', text: 'Pick the pavement that matches the scene, then adjust the friction value if you have a better local drag factor.' },
37
+ { name: 'Set grade and brakes', text: 'Enter the slope and whether the mark came from both brakes, the front, the rear, or an unknown control.' },
38
+ { name: 'Read the band', text: 'Use the mid speed as the working estimate and the low to high band as the effect of your assumptions. Treat every result as educational.' },
39
+ ];
40
+
41
+ const seo: SEOSection[] = [
42
+ { type: 'title', level: 2, text: 'Turn a rubber mark into a speed band' },
43
+ {
44
+ type: 'paragraph',
45
+ html: 'A motorcycle often leaves one clear rear mark, a lighter front mark, or an interrupted ABS print. Measure the locked-wheel portion, not the later gouge of a sliding bike. Then let friction, grade, and brake use push the estimate into a range instead of a fake precise speed.',
46
+ },
47
+ { type: 'title', level: 3, text: 'How the estimate is built' },
48
+ {
49
+ type: 'paragraph',
50
+ html: 'The working model is the slide-to-stop energy balance: speed is the square root of twice gravity times drag factor times mark length. Drag factor is friction times brake efficiency, plus grade as a decimal. An uphill grade helps the motorcycle stop. A downhill grade reduces drag and can make the equation invalid if gravity exceeds friction.',
51
+ },
52
+ {
53
+ type: 'list',
54
+ items: [
55
+ 'Length is converted to metres internally so metric and imperial stay the same physical mark.',
56
+ 'Surface chips load a typical locked-wheel friction and a low to high span.',
57
+ 'Front-only and rear-only efficiencies are educational fractions of a fully used tire-road couple, because FMVSS 122 tests those controls separately.',
58
+ 'Unknown brake use stretches the band from a rear-only assumption to a both-brake assumption.',
59
+ ],
60
+ },
61
+ {
62
+ type: 'tip',
63
+ title: 'Measure the locked tire, not the crash',
64
+ html: 'Start at the first visible striation or shadow of a locked tire and stop where rotation resumes, the mark fades, or an impact begins. Do not add the distance the motorcycle slid on bodywork after a capsize. That is a different drag problem.',
65
+ },
66
+ { type: 'title', level: 3, text: 'Typical friction used as a starting point' },
67
+ {
68
+ type: 'table',
69
+ headers: ['Surface', 'Mid friction', 'Low to high span'],
70
+ rows: [
71
+ ['Dry asphalt', '0.70', '0.55 to 0.85'],
72
+ ['Wet asphalt', '0.50', '0.35 to 0.65'],
73
+ ['Dry concrete', '0.75', '0.60 to 0.90'],
74
+ ['Gravel', '0.50', '0.35 to 0.70'],
75
+ ['Grass or dirt', '0.40', '0.25 to 0.55'],
76
+ ['Ice', '0.10', '0.05 to 0.18'],
77
+ ],
78
+ },
79
+ {
80
+ type: 'paragraph',
81
+ html: 'These are teaching values for locked sliding rubber, not peak braking coefficients from a laboratory trailer. FHWA describes the locked-wheel method as the analog of emergency braking without ABS. A measured drag sled or skid test at the scene always beats a table.',
82
+ },
83
+ { type: 'title', level: 3, text: 'Motorcycle brakes change the story' },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'Most motorcycles have separate front and rear controls. A single rear skid does not mean the rider used all available friction. The estimator therefore lets you choose both, front, rear, or unknown. Unknown is the honest setting when you only have a photo of one stripe.',
87
+ },
88
+ {
89
+ type: 'diagnostic',
90
+ variant: 'warning',
91
+ title: 'Educational estimate, not evidence',
92
+ badge: 'Not for court',
93
+ html: 'ABS can leave dashed or missing marks. Contaminants, tire wear, load, ABS pulse, and an impact at the end of the mark all change the true speed. If the downhill drag factor reaches zero, the page refuses a number instead of inventing one.',
94
+ },
95
+ ];
96
+
97
+ const schemas: WithContext<SoftwareApplication | FAQPage | HowTo>[] = [
98
+ {
99
+ '@context': 'https://schema.org',
100
+ '@type': 'SoftwareApplication',
101
+ name: title,
102
+ applicationCategory: 'UtilitiesApplication',
103
+ operatingSystem: 'Web',
104
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'USD' },
105
+ description,
106
+ },
107
+ {
108
+ '@context': 'https://schema.org',
109
+ '@type': 'FAQPage',
110
+ mainEntity: faq.map((item) => ({
111
+ '@type': 'Question',
112
+ name: item.question,
113
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
114
+ })),
115
+ },
116
+ {
117
+ '@context': 'https://schema.org',
118
+ '@type': 'HowTo',
119
+ name: 'Estimate motorcycle speed from a skid mark',
120
+ step: howTo.map((step) => ({
121
+ '@type': 'HowToStep',
122
+ name: step.name,
123
+ text: step.text,
124
+ })),
125
+ },
126
+ ];
127
+
128
+ export const content: MotorcycleSkidMarkSpeedEstimatorLocaleContent = {
129
+ slug,
130
+ title,
131
+ description,
132
+ ui: {
133
+ unitMetric: 'Metric',
134
+ unitImperial: 'Imperial',
135
+ disclaimer: 'Teaching only. Chalk on a locked tyre scar, not a crash report.',
136
+ lengthLabel: 'Scar length',
137
+ lengthHint: 'Pull the rubber stripe. The yellow hook is the end of the visible mark.',
138
+ gradeLabel: 'Grade',
139
+ gradeHint: 'Tilt the slab. Uphill helps the motorcycle stop. Downhill eats drag.',
140
+ surfaceLabel: 'Pavement cores',
141
+ frictionLabel: 'Drag sled',
142
+ frictionHint: 'Park the sled on a core, then pull the scale if you measured a local drag factor.',
143
+ brakeLabel: 'Locked tyre',
144
+ brakeBoth: 'Both locked',
145
+ brakeFront: 'Front',
146
+ brakeRear: 'Rear',
147
+ brakeUnknown: 'Unknown',
148
+ speedLabel: 'Speed chalked on the scar',
149
+ rangeLabel: 'Faint scars',
150
+ dragHint: 'Drag anywhere on the lane to grow or shrink the rubber.',
151
+ emptyMessage: 'Pull the scar to chalk a speed.',
152
+ invalidMessage: 'The slab dumps downhill. This mark cannot explain a stop.',
153
+ readyMessage: 'Speed is chalked on the rubber.',
154
+ educationalBadge: 'Teaching only',
155
+ surfaceDryAsphalt: 'Dry asphalt',
156
+ surfaceWetAsphalt: 'Wet asphalt',
157
+ surfaceDryConcrete: 'Dry concrete',
158
+ surfaceGravel: 'Gravel',
159
+ surfaceGrass: 'Earth',
160
+ surfaceIce: 'Ice',
161
+ surfaceCustom: 'Sled',
162
+ sensitivityLabel: 'Faint scars',
163
+ lowAssumption: 'Low',
164
+ highAssumption: 'High',
165
+ gradeUphill: 'Uphill',
166
+ gradeDownhill: 'Downhill',
167
+ gradeLevel: 'Level',
168
+ measureHint: 'A scene drag sled beats a table. Use Sled and type the measured number.',
169
+ stencilUnitKmh: 'km/h',
170
+ stencilUnitMph: 'mph',
171
+ lengthUnitM: 'm',
172
+ lengthUnitFt: 'ft',
173
+ percentSuffix: '%',
174
+ dragLowLabel: 'Low drag',
175
+ dragMidLabel: 'Mid drag',
176
+ dragHighLabel: 'High drag',
177
+ },
178
+ seo,
179
+ faqTitle: 'Skid mark speed questions',
180
+ faq,
181
+ bibliographyTitle: 'Sources',
182
+ bibliography: bibliographyEntries,
183
+ howTo,
184
+ schemas,
185
+ };
@@ -0,0 +1,185 @@
1
+ import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
2
+ import type { SEOSection } from '@jjlmoya/utils-shared';
3
+ import { bibliographyEntries } from '../bibliography';
4
+ import type { MotorcycleSkidMarkSpeedEstimatorLocaleContent } from '../entry';
5
+
6
+ const slug = 'estimador-velocidad-huella-frenada-moto';
7
+ const title = 'Estimador de velocidad por huella de frenada de moto';
8
+ const description =
9
+ 'Estima el rango de velocidad de una motocicleta a partir de la longitud de la marca de frenado, friccion del terreno, pendiente y frenos activados.';
10
+
11
+ const faq = [
12
+ {
13
+ question: '¿Que velocidad representa una marca de frenada?',
14
+ answer:
15
+ 'Una huella de rueda bloqueada registra la distancia necesaria para disipar energia cinetica tras detenerse la rotacion del neumático. La ecuacion fisica ofrece la velocidad minima inicial al comienzo de la marca visible.',
16
+ },
17
+ {
18
+ question: '¿Por que el resultado es un rango en lugar de un unico numero?',
19
+ answer:
20
+ 'La friccion de la superficie presenta incertidumbres, el frenado en motocicleta se reparte entre rueda delantera y trasera, y la pendiente altera el arrastre. El estimador contempla estas variables mostrando valores minimo, medio y maximo.',
21
+ },
22
+ {
23
+ question: '¿Puedo usar esta cifra en un atestado o informe pericial oficial?',
24
+ answer:
25
+ 'No. La reconstruccion de accidentes requiere pruebas de campo, coeficiente de rozamiento medido con dinamometro, analisis de ABS y deformacion por impacto. Esta utilidad es un laboratorio fisico educativo.',
26
+ },
27
+ {
28
+ question: '¿En que se diferencia de una calculadora de distancia de frenado?',
29
+ answer:
30
+ 'La calculadora de distancia parte de una velocidad y determina la distancia recorrida. Esta herramienta realiza el proceso inverso partiendo de la huella medida sin incluir tiempo de reaccion.',
31
+ },
32
+ ];
33
+
34
+ const howTo = [
35
+ { name: 'Medir la marca', text: 'Registra la longitud de la marca visible de rueda bloqueada en metros o pies.' },
36
+ { name: 'Seleccionar la superficie', text: 'Elige el firme correspondiente al escenario o ajusta manualmente el coeficiente de rozamiento.' },
37
+ { name: 'Ajustar pendiente y frenos', text: 'Introduce el desnivel y especifica si la marca proviene de ambos frenos, del delantero o del trasero.' },
38
+ { name: 'Interpretar el resultado', text: 'Utiliza la velocidad media como valor central y analiza el rango de variacion segun las condiciones.' },
39
+ ];
40
+
41
+ const seo: SEOSection[] = [
42
+ { type: 'title', level: 2, text: 'Convierte una huella de neumático en un rango de velocidad' },
43
+ {
44
+ type: 'paragraph',
45
+ html: 'Una motocicleta suele dejar una marca clara del neumático trasero, un rastro mas tenue del delantero o una linea discontinua con sistema ABS. Mide la fraccion de rueda totalmente bloqueada sin incluir el arrastre posterior de la carroceria tras una caida.',
46
+ },
47
+ { type: 'title', level: 3, text: 'Fundamento fisico de la estimacion' },
48
+ {
49
+ type: 'paragraph',
50
+ html: 'El modelo utiliza el balance de energia por rozamiento. La velocidad es proporcional a la raiz cuadrada del producto de la gravedad, la longitud de la huella y el factor de desaceleracion ajustado por la pendiente del terreno.',
51
+ },
52
+ {
53
+ type: 'list',
54
+ items: [
55
+ 'La longitud se convierte internamente a metros para mantener la equivalencia fisica exacta.',
56
+ 'Las opciones de firme proporcionan coeficientes dinamicos estandar de friccion.',
57
+ 'El uso de freno delantero o trasero aplica la distribucion de carga tipica segun normativas de homologacion.',
58
+ 'La opcion de freno indeterminado amplia el margen entre la hipotesis mas conservadora y la mas exigente.',
59
+ ],
60
+ },
61
+ {
62
+ type: 'tip',
63
+ title: 'Medir el neumático bloqueado',
64
+ html: 'Inicia la medicion en la primera sombra o estria visible de caucho depositado y finaliza donde se reanude la rotacion o comience la colision.',
65
+ },
66
+ { type: 'title', level: 3, text: 'Coeficientes de friccion de referencia' },
67
+ {
68
+ type: 'table',
69
+ headers: ['Superficie', 'Friccion media', 'Rango de variacion'],
70
+ rows: [
71
+ ['Asfalto seco', '0.70', '0.55 a 0.85'],
72
+ ['Asfalto mojado', '0.50', '0.35 a 0.65'],
73
+ ['Hormigon seco', '0.75', '0.60 a 0.90'],
74
+ ['Grava', '0.50', '0.35 a 0.70'],
75
+ ['Tierra o hierba', '0.40', '0.25 a 0.55'],
76
+ ['Hielo', '0.10', '0.05 a 0.18'],
77
+ ],
78
+ },
79
+ {
80
+ type: 'paragraph',
81
+ html: 'Valores de referencia para deslizamiento de caucho sin rodadura. Un ensayo directo con dinamometro sobre el escenario real siempre ofrece mayor precision.',
82
+ },
83
+ { type: 'title', level: 3, text: 'Influencia de los frenos en la motocicleta' },
84
+ {
85
+ type: 'paragraph',
86
+ html: 'Al disponer de mandos independientes, una huella trasera no implica que se haya aprovechado todo el agarre disponible. La herramienta permite seleccionar el eje implicado para reflejar la transferencia de masa.',
87
+ },
88
+ {
89
+ type: 'diagnostic',
90
+ variant: 'warning',
91
+ title: 'Estimacion didactica',
92
+ badge: 'Uso educativo',
93
+ html: 'El desgaste del neumático, la presencia de gravilla, la activacion del ABS y los impactos alteran el calculo. Si la pendiente supera la capacidad de detencion, el sistema bloquea el calculo por invalidez fisica.',
94
+ },
95
+ ];
96
+
97
+ const schemas: WithContext<SoftwareApplication | FAQPage | HowTo>[] = [
98
+ {
99
+ '@context': 'https://schema.org',
100
+ '@type': 'SoftwareApplication',
101
+ name: title,
102
+ applicationCategory: 'UtilitiesApplication',
103
+ operatingSystem: 'Web',
104
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
105
+ description,
106
+ },
107
+ {
108
+ '@context': 'https://schema.org',
109
+ '@type': 'FAQPage',
110
+ mainEntity: faq.map((item) => ({
111
+ '@type': 'Question',
112
+ name: item.question,
113
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
114
+ })),
115
+ },
116
+ {
117
+ '@context': 'https://schema.org',
118
+ '@type': 'HowTo',
119
+ name: 'Estimar la velocidad de una moto por la huella de frenado',
120
+ step: howTo.map((step) => ({
121
+ '@type': 'HowToStep',
122
+ name: step.name,
123
+ text: step.text,
124
+ })),
125
+ },
126
+ ];
127
+
128
+ export const content: MotorcycleSkidMarkSpeedEstimatorLocaleContent = {
129
+ slug,
130
+ title,
131
+ description,
132
+ ui: {
133
+ unitMetric: 'Metrico',
134
+ unitImperial: 'Imperial',
135
+ disclaimer: 'Uso educativo. Laboratorio de fisica de frenado en carretera.',
136
+ lengthLabel: 'Longitud de huella',
137
+ lengthHint: 'Arrastra para modificar la longitud de la marca visible.',
138
+ gradeLabel: 'Pendiente',
139
+ gradeHint: 'La cuesta arriba ayuda a frenar. La cuesta abajo reduce el agarre.',
140
+ surfaceLabel: 'Tipo de terreno',
141
+ frictionLabel: 'Friccion dinamica',
142
+ frictionHint: 'Selecciona una superficie o ajusta manualmente la friccion.',
143
+ brakeLabel: 'Freno bloqueado',
144
+ brakeBoth: 'Ambos frenos',
145
+ brakeFront: 'Delantero',
146
+ brakeRear: 'Trasero',
147
+ brakeUnknown: 'Indeterminado',
148
+ speedLabel: 'Velocidad estimada en la huella',
149
+ rangeLabel: 'Rango de incertidumbre',
150
+ dragHint: 'Arrastra sobre la calzada para ajustar la huella.',
151
+ emptyMessage: 'Ajusta la huella para calcular la velocidad.',
152
+ invalidMessage: 'Pendiente excesiva. La gravedad impide la detencion.',
153
+ readyMessage: 'Velocidad calculada correctamente.',
154
+ educationalBadge: 'Uso didactico',
155
+ surfaceDryAsphalt: 'Asfalto seco',
156
+ surfaceWetAsphalt: 'Asfalto mojado',
157
+ surfaceDryConcrete: 'Hormigon seco',
158
+ surfaceGravel: 'Grava',
159
+ surfaceGrass: 'Tierra',
160
+ surfaceIce: 'Hielo',
161
+ surfaceCustom: 'Personalizado',
162
+ sensitivityLabel: 'Margen estimado',
163
+ lowAssumption: 'Bajo',
164
+ highAssumption: 'Alto',
165
+ gradeUphill: 'Subida',
166
+ gradeDownhill: 'Bajada',
167
+ gradeLevel: 'Lano',
168
+ measureHint: 'Un ensayo dinamometrico real mejora la precision de la tabla.',
169
+ stencilUnitKmh: 'km/h',
170
+ stencilUnitMph: 'mph',
171
+ lengthUnitM: 'm',
172
+ lengthUnitFt: 'ft',
173
+ percentSuffix: '%',
174
+ dragLowLabel: 'Arrastre bajo',
175
+ dragMidLabel: 'Arrastre medio',
176
+ dragHighLabel: 'Arrastre alto',
177
+ },
178
+ seo,
179
+ faqTitle: 'Preguntas frecuentes sobre huellas de frenada',
180
+ faq,
181
+ bibliographyTitle: 'Fuentes bibliograficas',
182
+ bibliography: bibliographyEntries,
183
+ howTo,
184
+ schemas,
185
+ };