The purpose of this Flutter package is to draw a full-width (embed in Container to resize) representation of a semi-circle assembly... The number of dots is up to you, by default 577 as for the French National Assembly.

Image Image
DrawHemicycle groupes parlementaires France 2022 DrawHemicycle l├ęgislatives France 2022

Features

You can change the number of seats, the arc of the circle (by default, 170┬░) and, with the specific type of inputs, you can display individual voters or sectors for group appearance...

Usage

Create a List<GroupSectors> containing every sectors you want to draw.

    List<GroupSectors> hemicycleTest = [
      GroupSectors(30, customVoteFor, description: "BEFORE"),
      GroupSectors(50, customVoteAgainst, description: "NEW"),
      GroupSectors(497, customVoteAbstention, description: "AFTER")
    ];
    
    DrawHemicycle(
        30 + 50 + 497,
        nbRows: ((30 + 50 + 497) / 50).ceil(),
        groupSectors: hemicycleTest,
        withLegend: true,
        withTitle: true,
        title: "TEST",
    );

OR

Create a List<IndividualVotes> containing every individual vote you want to draw.

    List<IndividualVotes> votesTest = [
        IndividualVotes(33, voteResult: true, groupPairing: "AAA"),
        IndividualVotes(34, voteResult: true, groupPairing: "AAA"),
        IndividualVotes(35, voteResult: false, groupPairing: "AAA"),
        IndividualVotes(36, voteResult: true, groupPairing: "AAA"),
        IndividualVotes(37, voteResult: false, groupPairing: "AAA"),
        IndividualVotes(88, voteResult: true, groupPairing: "MMM"),
        IndividualVotes(89, voteResult: false, groupPairing: "MMM"),
        IndividualVotes(90, voteResult: false, groupPairing: "MMM"),
        IndividualVotes(122, voteResult: false, groupPairing: "ZZZ"),
        IndividualVotes(123, voteResult: false, groupPairing: "ZZZ"),
        IndividualVotes(124, voteResult: true, groupPairing: "ZZZ"),
        IndividualVotes(126, voteResult: true, groupPairing: "ZZZ"),
    ];

    DrawHemicycle(200,
        nbRows: 8, individualVotes: votesTest, withLegend: true);

Then use DrawHemicycle to get the semi-circle assembly representation.

Image Image
Example group sectors Example individual votes

Additional information

Further infos soon ;-)

Libraries

colors
drawHemicycle
element_attributes
group_sectors
helpers
hemicycle
individual_votes