Hanse, 2021 on
The vessel profile's outline for Hanse's Berret-Racoupeau range from 2021 on, and the vessels it draws.
On this page
Code
import { HANSE_2021, VesselProfile, type VesselOutline } from "@bosunkit/components/vessel-profile";
import type { ReactElement } from "react";
export const description: string =
"The Hanse 2021 outline as drawn at 14.6 m, dimensioned in meters read from the points marked on it.";
const outline: VesselOutline = HANSE_2021;
/** Drawing units to the meter: the length overall, from the transom to the bow's tip, is the reference length. */
const perMeter: number = (outline.hooks.bowTip - outline.hooks.transom) / outline.referenceLength;
/** A distance on the drawing, in meters. */
function meters(units: number): string {
return `${(units / perMeter).toFixed(2)} m`;
}
export default function Drawn(): ReactElement {
const { hooks }: VesselOutline = outline;
return (
<VesselProfile
outline={outline}
dimensions={{
lengthOverall: meters(hooks.bowTip - hooks.transom),
waterlineLength: meters(hooks.waterlineForward - hooks.waterlineAft),
draft: meters(hooks.keelFoot - hooks.waterline),
freeboard: meters(hooks.waterline - hooks.deckAtBow),
}}
/>
);
}
Hanse's Berret-Racoupeau range from 2021 on has an outline of its own, traced from the hull plan Hanse publishes for the 460, the first of the range: a straight sheer rising a little toward a plumb stem with its bow roller, a reverse transom, three hull windows, a low coachroof with its window band, and below the antifouling line the canoe body, the L-shaped fin keel with its bulb aft, the spade rudder and the saildrive. The rails and the shallow-keel option, drawn dashed in the plan, are left out. Hanse states each model's length overall to the tip of the bow roller, so the outline's length ends there; traced at that scale, the hull measures 13.87 m against Hanse's 13.95 m, and the draft 2.27 m against 2.25 m. With the plumb stem, a shorter waterline comes off the stern alone, so the stem stays upright and the stern lifts.
The outline is traced at 14.6 m and listed in VESSEL_OUTLINES as hanse-2021; the kit exports it as HANSE_2021.
The 360, 410, 460, 510 and 590 take this outline; the Judel/Vrolijk boats before them, the 315 to the 548, are
another range. It is the profile's default. Given a vessel's
proportions, the vessel profile stretches it to her length overall, waterline
length, freeboard and draft; a particular not given follows the length overall in the outline's proportion.
Examples
A range from one outline
Code
import { HANSE_2021, VesselProfile } from "@bosunkit/components/vessel-profile";
import type { ReactElement } from "react";
export const description: string =
"Three of Hanse's Berret-Racoupeau range from one outline, each stretched to her own length overall, waterline " +
"length and draft and drawn to one scale: the 360, the 460 and the 590.";
/** Length overall and draft from the vessel catalog; waterline lengths from YACHT's tests of each model. */
const RANGE: readonly { readonly model: string; readonly loa: number; readonly lwl: number; readonly draft: number }[] =
[
{ model: "360", loa: 11.3, lwl: 10.29, draft: 2.06 },
{ model: "460", loa: 14.6, lwl: 13.05, draft: 2.25 },
{ model: "590", loa: 17.6, lwl: 16.26, draft: 2.7 },
];
export default function Range(): ReactElement {
return (
<div style={{ display: "grid", gap: "var(--space-md)" }}>
{RANGE.map(
({ model, loa, lwl, draft }): ReactElement => (
<figure key={model} style={{ margin: 0 }}>
<VesselProfile
outline={HANSE_2021}
proportions={{ lengthOverall: loa, waterlineLength: lwl, draft }}
frameLength={17.6}
dimensions={{
lengthOverall: `${loa.toFixed(2)} m`,
waterlineLength: `${lwl.toFixed(2)} m`,
draft: `${draft.toFixed(2)} m`,
}}
/>
<figcaption style={{ marginTop: "var(--space-xs)", color: "var(--text-dim)", fontSize: "0.85em" }}>
Hanse {model}
</figcaption>
</figure>
),
)}
</div>
);
}
Related
- Vessel profile: the component, its props, and the outline for each hull shape.